Firebird2.0-Delphi7-DBExpress로 레코드를 수정하려고 하는데 자꾸 에러가 나네요.
1. SimpleDataSet.Insert;
2. SimpleDataSet.Post;
3. SimpleDataSet.ApplyUpdates(0);
4. SimpleDataSet.Close;
5. SimpleDataSet.Open;
6. SimpleDataSet.Edit;
7. SimpleDataSet.Post;
8. SimpleDataSet.ApplyUpdates(0);
위와 같은 코드로 작성한 레코드는 아무 이상없이 수정이 잘 됩니다.
근데,
1. Sql := ' Insert into 테이블(기본키, 필드1) ';
Sql := Sql+' values ('''+기본키값+''','''+필드1값+''') ';
SimpleDataSet := TSimpleDataSet.Create(Self);
SimpleDataSet .DataSet.CommandType := ctQuery;
SimpleDataSet .DataSet.CommandText := SQL;
try
SDS.Execute;
finally
FreeAndNil(SimpleDataSet );
end;
2. SimpleDataSet.Close;
3. SimpleDataSet.Open;
4. SimpleDataSet.Edit;
5. SimpleDataSet.Post;
6. SimpleDataSet.ApplyUpdates(0);
위와 같이 쿼리로 바로 Execute 시킨 레코드는 5번 코드까지만 이상없이 돌고 6번 코드에서
Project TEST.exe raised exception class EDatabaseError with message 'Record not found or changed by another user'. Process stopped. Use Step or Run to continue.
이런 에러를 발생시키네요.
물론 수정시 기본키값을 변경시키지는 않았습니다.
도대체 모가 문제일까요?
조언 부탁드립니다.
|