Newsgroup: it.comp.lang.visual-basic
Titolo: SQL, Double, virgole, decimali

Ciao raga,
ho un problema con una query abbastanza lunga. Il problema è che inviando
una serie di dati Double mi mette la virgola nel separatore dei decimali.
Ad esempio, supponiamo che Pippo sia una variabile Double e contenga il
valore 0.35 se provo ad inviare nel database con:
"UPDATE [tabella] SET [prezzo] = " & Pippo
mi segnala un errore in quanto la stringa inviata è:
"UPDATE [tabella] SET [prezzo] = 0,35"
e mi segnala numero di argomenti errato!!! Ho pensato ad un Replace ma gli
argomenti sono una quarantina e non uno come nell'esempio!
soluzioni?

 soluzioni?
Purtroppo, credo debba modificare le impostazioni internazionali,
mettendo il punto come separatore decimale e la virgola come
separatore delle migliaia.
--
Er Roscio.

 soluzioni?
un po di fatica ed un bel po di replace....
io per fare il pignolo oserei dire che
"UPDATE [tabella] SET [prezzo] = " & Pippo
anche se funziona non č "bello da vedersi"
"UPDATE [tabella] SET [prezzo] = " & Cstr(Pippo)
mi piace moolto di piů..cmq....
...alternative...
in sede di validazione input ,non potresti memorizzare anche il dato formato
testo in una matrice di stringhe?
...
oppure farti una funct che carica i tuoi dati in una matrice e fai la query
con quella...se aggiungi/rimuovi  campi modifichi una volta sola dentro la
funct no?

 ha scritto nel messaggio
news:tVbX8.23104$7N3.5...@twister2.libero.it...

usa una sub che accetta un numero variabile di parametri (paramarray) e
modifichi
tutte le variabili che ti servono con una replace, in uscita hai le
variabili corrette e pronte per l'uso
--
bye BlackMagic
ICQ: 85485468
Aiuta la ricerca sul cancro 
http://members.ud.com
Join
at:
http://members.ud.com/services/teams/team.htm?id=2E71C62A-8E67-48DB-B472-
BCA129B35412

 "UPDATE [tabella] SET [prezzo] = 0,35"
Ciao Zero sono Fra' di ISAM ;-)
Hai provato con
"UPDATE [tabella] SET [prezzo] =  '" & Pippo & "'" ?
--
                  \/
                 -   -
                 (.) (.)
----o0O0o--(_)--o0O0o----
<<Oh Grande Spirito,
Concedimi la serenità
Di accettare le cose
Che non posso cambiare,
Il coraggio di cambiare le cose
Che posso cambiare,
E la Saggezza di capirne la differenza.>>
               (Preghiera Cherokee)
Ciao
Franco ( per rispondermi toglimi la vita...se ci riesci )

 "UPDATE [tabella] SET [prezzo] =  '" & Pippo & "'" ?
non funzerebbe perchè Prezzo è un numero! ;)

 ha scritto nel messaggio
news:SscX8.23247$7N3.5...@twister2.libero.it...

Infatti era ta apice singolo, non tra doppi apici (virgolette)
L'ho appena provato con Access per sicurezza e funzica !!
^__^


 > "UPDATE [tabella] SET [prezzo] = " & Pippo
Un classico.
Purtroppo VB ci consente delle 'porcate' come concatenare una stringa con un
double.
Il fatto che non ci generi errore di compilazione non significa che sia
corretto, tant'è che un applicativo che contenga una cosa del genere è il
classico sw che funziona su un PC e non su quello a fianco.
Quindi:
1) Usare la conversione implicita è una cosa brutta. Se anche non genera
direttamente errore, quantomeno ci si disabitua a usare le cose come si
deve. Nel tuo caso, devi usare almeno una funzione che accetta un Double e
ritorna una stringa (ad esempio cstr, format, ecc...)
2) Creare una funzioncina (la mia si chiama Decimale_Con_Punto, ma tu falla
come vuoi), da usare proprio per concatenare i valori numerici nelle
stringhe SQL.
3) Creare una analoga funzioncina anche per la conversione delle variabili
booleane in stringhe contenenti -1, 1 o 0 (qui occorre anche passare alla
funzione il tipo di DB, visto che non tutti hanno la stessa sintassi)
4) Creare una analoga funzioncina anche per la conversione delle variabili
data in stringhe, secondo il formato accettato dal DB
Ciao
Alberto
PS: Scusa il tono, ma questa è una cosa per la quale mi scaldo sempre, visto
il numero di volte che mi è toccato modificare sw fatti da altri con bug
causati da queste cose....

 causati da queste cose....
Non preoccuparTi, ovviamente VB è il linguggio "fai come vuoi"! ;)
saluti

 causati da queste cose....
a chi lo dici... ;(
ciao
ugo


Io aggiungerei anche una funzione che rimpiazza gli apici delle stringhe,
perchè se Pippo = "P'ippo", allora "UPDATE [tabella] SET [nome] = '" & Pippo
& "'" provocherà un errore.

 separatore delle migliaia.
questo non è molto bello.....


puoi usare la vecchi Str$()
"UPDATE [tabella] SET [prezzo] = " + Str$(Pippo)
questa funzione, in coppia con la Val() NON usa le
impostazioni internazionali. Ma sempre quelle americane.
bye
R

> puoi usare la vecchi Str$()
funza! ;)
THANX!

 questo non č molto bello.....
Infatti ho detto "purtroppo", ma č la cosa meno "porcherosa"
rispetto a  scambiare le virgole e i numeri all'interno delle stringhe,
ecc.
--
Er Roscio.

ecc.
Cosa !!!!!?????
-- 
ciao, hal