Delphi XE2 を AnyDac コンポーネントと Advantage Database 10 と共に使用しています。私のコードでは、次のようなパラメーター化されたクエリを使用しています。
q.SQL.Text := 'SELECT * FROM Table1 ' +
'LEFT JOIN Table2 ON (Table1.ID = Table1 .ID_Table2) ' +
'WHERE ' +
':0 BETWEEN Table1.StartAm AND Table1.EndeAm ' +
'AND Table2 = :1';
q.Params[0].Value := AStartDateTime;
q.Params[1].Value := AIDRessourcenGruppe;
q.Open;
これは例外になります。
Exception der Klasse EADSNativeException mit der Meldung '[AnyDAC][Phys][ADS] エラー 7200: AQE エラー: 状態 = 22018;
NativeError = 2112; [iAnywhere ソリューション][Advantage SQL Engine]Assignment error' aufgetreten.
もちろん、AStartDateTime は有効な Delphi TDateTime 値であり、AIDRessourcenGruppe は整数値です。
興味深いことに、これら 2 つのバリアントは機能します。
q.SQL.Text := 'SELECT * FROM Table1 ' +
'LEFT JOIN Table2 ON (Table1.ID = Table1 .ID_Table2) ' +
'WHERE ' +
':0 BETWEEN Table1.StartAm AND Table1.EndeAm ' +
'AND Table2 = :1';
q.Params[0].AsDateTime:= AStartDateTime;
q.Params[1].AsInteger:= AIDRessourcenGruppe;
q.Open;
-
q.SQL.Text := 'SELECT * FROM Table1 ' +
'LEFT JOIN Table2 ON (Table1.ID = Table1 .ID_Table2) ' +
'WHERE ' +
':SomeDate BETWEEN Table1.StartAm AND Table1.EndeAm ' +
'AND Table2 = :ID_PT_Ressourcengruppe';
q.ParamByName('SomeDate').Value := AStartDateTime;
q.ParamByName('ID_PT_Ressourcengruppe').Value := AIDRessourcenGruppe;
q.Open;
私は何かが恋しいですか?助けてくれてありがとう!