4

私の構成:

Delphi XE
Firebird 2.1
IBObjects 4.9.12
Windows764 ビット

IBOQueryパラメーターに値を設定しようとすると例外が発生します(「タイプ(UnicodeString)のバリアントをタイプ(Double)に変換できませんでした」)。

例外は、IB_Components.pasのTIB_Column.SetAsVariantプロシージャから発生します(42795行目)。この状況を作成するには、日付パラメータに文字列を渡してみてください。

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

過去25日間、私はこの状況を解決しようとしていますが、IBOサポートリストに回答がありません。
誰かがアイデアを持っていますか?

4

1 に答える 1

3

IBObjectsのアーキテクチャは、(実行時に)すべてのパラメータやフィールドなどを文字列またはバリアントに変換しています。'mydate'パラメーターが'DateTime'(数値)タイプの場合は、対応するタイプの値を入力する必要があります。'numeric'タイプのパラメータを文字列で埋めるロジックではありません...

これを試して

myQuery.paramByName('mydate')。AsDateTime:= Now + 5; //Davidの答えと同じです。

また

myQuery.paramByName('mydate')。AsFloat:= Now + 5; //またはIncDay(Now、5)

よろしく、
ラドゥ

于 2011-01-24T11:52:12.547 に答える