Newsgroup: it.comp.www.asp
Titolo: Scrivere in un db un campo con decimali

Non ne vengo fuori :(
Ho un campo di una tabella definito
- Precisione Singola
- Formato: fisso
- Decimali: 2
Se vado in output con un campo di questo tipo:
campo = "10,00" non ci sono problemi.
Se
campo = request.cookies("nome cookie")
(dove il cookie contiene 10,00)
Ho un errore.
L'sql è il seguente:
INSERT INTO tabella ( tbcampo ) VALUES ('" + campo + "')
Dove sbaglio?
n.b. Quello che ho bisogno di scrivere nel db è ovviamente la stringa
del cookie.

 Dove sbaglio?
Non specifichi il DBMS, ma in SQL Server il separatore decimale è il punto
".", mentre la virgola "," è quello delle migliaia, indipendentemente dalle
impostazioni internazionali.
Prima di comporre il comando SQL (anche se sarebbe INFINITAMENTE meglio
scrivere una stored procedure parametrica) fai una replace della virgola con
il punto.
Ciao!
-- 
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://mvp.support.microsoft.com
http://italy.mvps.org

Grazie per la risposta ma ...
1) vado in output su un db access
2) a parte che se metto . o , l'errore viene lo stesso, la cosa che non
capisco č che il contenuto della variabile NON CAMBIA.
Infatti sia per campo = "10,00" che per  campo = request.cookies("nome
cookie") la variabile con cui vado in scrittura contiene SEMPRE lo
stesso valore (10,00). Ma se definita nel primo modo lo stesso sql non
da errore, nel secondo si!
Pensavo dipendesse dal tipo di campo che viene "battezzato" nel momento
in cui ci scrivo dentro.
Che ne dici?

 Dove sbaglio?
L'ho notato ora, se come affermi il data type della colonna tbcampo è 
numerico, non utilizzare gli apici per racchiudere il valore della variabile 
"campo":
strSQL = "INSERT INTO tabella (tbcampo) VALUES (" + campo + ")"
Dato che hai detto di utilizzare Access, leggi questo post che ti illustra 
come definire una Query parametrica e come richiamarla da una pagina ASP 
tramite l'oggetto ADODB.Command:
http://www.google.it/groups?selm=b5leqg$2amuc3$1...@ID-154627.news.dfncis.de


Lorenzo ... se tolgo i singoli apici l'sql da errore perche il campo
10,00 a causa della virgola viene visto come fossero due campi.
Forse non mi sono spiegato bene .... l'sql è ok così:
strSQL = "INSERT INTO tabella (tbcampo) VALUES ('" + campo + "')"
Ma se la variabile campo viene valorizzata così:
campo = "10,00" ... va bene
Se viene valorizzata così:
campo = request.cookies("nome cookie")
(dove il cookie contiene 10,00) ... da errore! :((
n.b. Il link che mi hai indicato non va.
Ciao.

 Ciao.


 strSQL = "INSERT INTO tabella (tbcampo) VALUES ('" + campo + "')"
Se l'SQL è valido significa che tbcampo è una stringa (o una data) e non un
numero.
Prova con qualche porcata del tipo
campo = "" & request.cookies("nome cookie")
oppure
campo=cstr(request.cookies("nome cookie"))
E comunque, quale errore ti da?
Hai fatto un bel "response.write" della stringa della query che viene
effettivamente inviata al DB?
Alex.
-- 
___________________________________________________________
a p bertolini
(Tribù Digitale Blackmambo: 
www.blackmambo.it
)

L'errore era che la stringa non era conforme al tipo di campo del
database .... ho fatto la response.write della variabile, della stringa
sql ma mi sono stati di poco aiuto.
Alla fine ho risolto scomponendo gli interi ed i decimali dal campo di
input del cookie quindi ricomponendo il numero cosě: campo = interi
&","& decimali .... insomma nel contenuto della variabile non č
cambiato niente, idem nella stringa sql, ma ora il dato viene scritto
...... boh?!?
Ciao e grazie.

 Dove sbaglio?
Sbagli nel non riportare per esteso il messaggio di errore che ottieni.
I messagi di errore sono importanti... ci aiutano a capire DOVE si sbaglia.
:-))) Ciao
Mida