Sql e double

di il
6 risposte

Sql e double

Ho una tabella in cui ci sono due campi numerici a precisione doppia.
In una routine voglio aggiornare un terzo avendo come condizione un AND tra questi due campi.

La variabile PVol è dichiarata double ed ha valore decimale, tipo 3,1416
set rst = currentdb.openrecordset("select * from [CostiTrasporto] where [LimiteMinimo]<= " & Pvol & " and [LimiteMassimo]>= " & Pvol)
A questa riga compare l'errore seguente:

"Errore di sintassi (virgola) nell'espressione della query '[LimiteMinimo]<=3,1416 and [LimiteMassimo]>= 3.1416' "

Se cambio le proprietà dei campi e di Pvol con un integer e provo con numeri interi tutto funziona, quindi presumo che l'SQL sia a posto.

Non capisco il motivo, si devono inserire i valori double con una determinata sintassi come per le stringhe?

6 Risposte

  • Re: Sql e double

    Hai visto che il primo valore separa i decimali con la virgola e il secondo col punto?
  • Re: Sql e double

    E hai visto il messaggio d'errore ? Non credo che più preciso si possa essere ...

    mbarbon ha scritto:


    "Errore di sintassi (
  • Re: Sql e double

    Toki ha scritto:


    Hai visto che il primo valore separa i decimali con la virgola e il secondo col punto?
    Scusate, ho sbagliato io a riscriverlo a mano, quello giusto è:

    "Errore di sintassi (virgola) nell'espressione della query '[LimiteMinimo]<=3,1416 and [LimiteMassimo]>= 3,1416' "



    oregon ha scritto:


    E hai visto il messaggio d'errore ? Non credo che più preciso si possa essere ...

    mbarbon ha scritto:


    "Errore di sintassi (
    Si, il problòema è che viene passato all'istruzione un valore con la virgola, ho provato mettendo manualmente un valore con il punto (tipo 3.1416) e funziona.
    Ma visto che gli passo un double, come faccio ad avere il controlo di come viene passato il valore? In pratica come faccio a dirgli usa il punto e non la virgola per generare l'istruzione SQL?

    Grazie
  • Re: Sql e double

    PROVA

    REPLACE("3,14",",",".")

    quindi

    REPLACE(TuoValore,",",".")
  • Re: Sql e double

    Grazie per il suggerimento, problema risolto applicando la Replace direttamente all stringa SQL.
  • Re: Sql e double

    Usare replace è relativamente giusto... era meglio usare str(...) per lasciare al sistema la conversione.
Devi accedere o registrarti per scrivere nel forum
6 risposte