2 ~ 6번까진 필요없는 코드입니다.
어렵다 님이 쓰신 글 :
: 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.
:
: 이런 에러를 발생시키네요.
: 물론 수정시 기본키값을 변경시키지는 않았습니다.
: 도대체 모가 문제일까요?
: 조언 부탁드립니다.
|