Question

Ma configuration:

Delphi XE
Firebird 2.1
IBObjects 4.9.12
Windows 7 64bits

Je reçois une exception lorsque je tente de définir une valeur à un paramètre IBOQuery ( « Impossible de convertir variante de type (UnicodeString) en type (Double) »).

L'exception est soulevée de procédure TIB_Column.SetAsVariant dans IB_Components.pas (line 42795). Pour créer cette situation, essayez de passer une chaîne à un paramètre de date:

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

Au cours des dernières 25 jours, je suis en train de résoudre cette situation, mais dans la liste de soutien IBO J'ai pas de réponse.
Quelqu'un a une idée?

Était-ce utile?

La solution

L'architecture de IBObjects est la conversion (à un moment de l'exécution) tous les paramètres, les champs, etc, à chaîne ou variantes. Si votre paramètre « mydate » est de type « DateTime » (numeric), alors vous devez le remplir avec une valeur de type corespondent. Est-ce pas logique pour remplir un paramètre de type « numérique » avec une chaîne ...

essayer cette

myQuery.paramByName ( 'mydate') AsDateTime:. = Maintenant + 5; // est le même que la réponse de David.

ou

myQuery.paramByName ( 'mydate') AsFloat:. = Maintenant + 5; // ou IncDay (Maintenant, 5)

Meilleures salutations,
Radu

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top