古い Delphi システムに問題があります。このシステムはデータを SQL Server テーブルに挿入します。
10 年後、テーブルのフィールドを 100 文字から 255 文字に変更します。
システムはテーブルのすべてのレジストリを選択し、変換後に別のテーブルに配置します。それはうまくいきます。
問題は、システムがフィールドを更新するときです。
それは私にエラーを示します
「別のユーザーがレコードを変更したため、編集を実行できませんでした」というメッセージの EDBEngineError。
sConsulta:='SELECT * FROM cuentas WHERE (WALL= 2) AND (SEND_DATE = '01/01/1970')';
m_oQryLeg.Close;
m_oQryLeg.SQL.Clear;
m_oQryLeg.SQL.Add(sConsulta);
m_oQryLeg.Open;
m_oTblNov.Close;
m_oTblNov.TableName:='des_table';
m_oTblNov.Open;
with m_oTblNov do
begin
while (not m_oQryLeg.EOF) do
begin
Insert;
FieldbyName('COD_HOME').AsString:= m_oQryLeg.FieldByName('USR_HOME').AsString;
(...)
Post;
m_oQryLeg.Edit;
m_oQryLeg.FieldByName('SEND_DATE').AsDateTime:= Date; //<-- HERE THE ERROR
m_oQryLeg.Post;
m_oQryLeg.First;
m_oQryLeg.MoveBy(i);
inc(i);
end;
end;
m_oTblNov.Close;
m_oQryLeg.Close;
UpdateMode: upWhereAll
cuentas テーブル:
- NUM_SOL nvarchar 6 *PK
- WALL tinyint 1
- SEND_DATE smalldatetime 4
- OBS_CRED nvarchar 255
- FLCCリアル4
- STREET nvarchar 30