「Parameterオブジェクトが適切に定義されていません」について

解決


あーちゃん  2020-08-27 07:04:35  No: 149049  IP: [192.*.*.*]

こんにちは。
以下のコードを流したところ
「Parameterオブジェクトが適切に定義されていません。矛盾した、または不完全な情報が提供されました。」
というエラーが発生します。
何が原因なのでしょうか。
お手数をおかけしますが
お助けお願いします。

Windows 10 PRO
Delphi 10.1 Berlin ent update2
*****************************************

            with ADOCommand1 do
            begin
              CommandText := 'INSERT INTO TM_TEST '
                           + '(HINBAN, SEIBAN,  U_DATE) '
                           + 'VALUES (:IN_HINBAN, :IN_SEIBAN, :IN_U_DATE)';
              CommandType := cmdText;
              Parameters.ParamByName('IN_HINBAN').Value     := Trim(DataSourceS1.DataSet.Fields[0].AsString);
              Parameters.ParamByName('IN_SEIBAN').Value     := Trim(DataSourceS1.DataSet.Fields[1].AsString);
              Parameters.ParamByName('IN_U_DATE').Value     := DATE;
              Execute;      << ここでエラーが発生します。

              CommandText := 'COMMIT';
              CommandType := cmdText;
              Execute;
            end;

編集 削除
take  2020-08-27 07:44:11  No: 149050  IP: [192.*.*.*]

Parametersに代入している右辺の値がわからないので
試しにその値を直接指定  := 'ほげほげ' など設定して
それでエラーにならないなら右辺の変数値に問題が(文字列内に "が含まれるなど)
出るなら別の問題かと思います。

編集 削除
igy  2020-08-27 09:32:51  No: 149051  IP: [192.*.*.*]

> CommandType := cmdText; 
の次の行に
              Parameters.ParamByName('IN_HINBAN').DataType := ftWideString;
              Parameters.ParamByName('IN_SEIBAN').DataType := ftWideString;
              Parameters.ParamByName('IN_U_DATE').DataType := ftDate;
を追加しても、エラーが出ますか?

編集 削除
あーちゃん  2020-08-28 01:56:02  No: 149052  IP: [192.*.*.*]

takeさん、igyさん ご指導ありがとうございます。
お陰様で解決しました。
今後ともよろしkお願いいたします。

編集 削除