Domanda

La mia configurazione:

Delphi XE
Firebird 2.1
IBObjects 4.9.12
Di Windows 7 64bit

ottengo un'eccezione quando si tenta di impostare un valore a un parametro IBOQuery ( "Impossibile convertire variante di tipo (UnicodeString) in tipo (doppio)").

L'eccezione viene sollevata dalla procedura TIB_Column.SetAsVariant in IB_Components.pas (linea di 42795). Per creare questa situazione, solo cercare di passare una stringa a un parametro Data:

myQuery.paramByName('mydate').AsString := DateToStr(IncDay(Now,5));

Negli ultimi 25 giorni sto cercando di risolvere questa situazione, ma in lista di sostegno IBO Non ho risposte.
Qualcuno ha un'idea?

È stato utile?

Soluzione

architettura delle IBObjects è la conversione (in un momento di esecuzione) tutti i parametri, campi, ecc per stringa o varianti. Se il parametro 'mydate' è 'DateTime' (numerico) di tipo allora si deve riempire con un valore di tipo corespondent. Non è la logica per riempire un parametro di tipo 'numerica' con una stringa ...

Prova questo

myQuery.paramByName ( 'MyDate') AsDateTime:. = Ora + 5; // è la stessa risposta di David.

o

myQuery.paramByName ( 'MyDate') AsFloat:. = Ora + 5; // o IncDay (Ora, 5)

Con i migliori saluti,
Radu

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top