質問

いTSqlDataSetを得ながらプレーする必要がありまデータを取得しこのblob分野のBeforeUpdateRecordイベントのプロバイダを更新コマンドをたってこの:

Cmd := TSQLQuery.Create(nil);
try
  Cmd.SQLConnection := SQLConnection;
  Cmd.CommandText := 'UPDATE MYTABLE SET IMAGE = :PIMAGE WHERE ID = :PID';
  Cmd.Params.CreateParam(ftBlob, 'PIMAGE ', ptInput).Value := DeltaDS.FieldByName('IMAGE').NewValue; //blob field
  Cmd.Params.CreateParam(ftString, 'PID', ptInput).Value := DeltaDS.FieldByName('ID').NewValue;
  Cmd.ExecSQL;
finally
  Cmd.Free;
end;

私は行いませんEDatabaseErrorメッセージ:な価値のためのパラメータPIMAGE.

と思欠?

役に立ちましたか?

解決

答えを自分の問題の修正について教えてくださいは次の通りです:

const
  SQL = 'UPDATE MYTABLE SET IMAGE = :PIMAGE WHERE ID = :PID;';
var
  Params: TParams;
begin
  Params := TParams.Create(nil);
  try
    Params.CreateParam(ftBlob, 'PIMAGE', ptInput).AsBlob := DeltaDS.FieldByName('IMAGE').NewValue;
    Params.CreateParam(ftString, 'PID', ptInput).Value := DeltaDS.FieldByName('ID').NewValue;
    SQLConnection.Execute(SQL, Params);
  finally
    Params.Free;
  end;
end;

他のヒント

また釣りをした試験とは別のドライバーなどODBC)?まれてくる可能性があることで、エラーにならなおのコードです。このアプローチを変更したい●データプロバイダーへのサービス/ドライバー)は、た作家を招聘したいと思っていくの問題が必ずします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top