10

Delphi のデータセットに関連する次の 2 つのステートメントの違いを知りたいです。

dsMyDataSet.ParamByName('ID').AsInteger := 1122; //If ID is integer
dsMyDataSet.ParamByName('ID').AsString := '1122'; //If ID is string

dsMyDataSet.ParamByName('ID').Value := 1122; //ID is string or integer

これらのステートメントは同じ意味を持ちますか? 「値」は暗黙的に整数を文字列に変換しますか?

4

1 に答える 1

12

TParam.AsIntegerたとえば、プロパティはパラメータの値とデータ型を設定します。TParam.Value同じことを行いますが、TParamどの型が 内の値にマップされるかを決定し、Variant必ずしもそれが希望するデータ型であるとは限りません。

プロパティのみを使用して値を設定することをお勧めしますAsXXX。パラメーターのデータ型を制御できるため、パラメーター バインディング エラーを回避できるからです。

したがって、最後の質問に答えてください。いいえ、値は正しいデータ型に変換されません。値を割り当てるには、正しいプロパティを選択してデータ型を設定する必要があります。

于 2013-09-16T12:33:19.183 に答える