두 가지 방법이 있습니다.
1. 자료의 중복 유무를 먼저 체크하여 있으면 메세지를 뿌리는 방법과,
if Table1.locate('code', 'Code0001', []) then
ShowMessage('중복이다!!')
else
- 아래 (1) 번 코딩 -
2. 일단 Table.Post()를 하여 테이블의 OnPostError 이벤트시
중복을 피해 가는 방법이죠.
(1) 먼저,
with Table1 do begin
Append();
FieldByName().AsString := 'Code0001';
Post();
end;
(2) 여기는 테이블의 OnPostError
procedure TdmCmUpr.tblUprPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
with EDBEngineError(E) do begin
case Errors[ErrorCount - 1].ErrorCode of
DBIERR_HEADERCORRUPT : 코딩...
DBIERR_FILEBUSY : 코딩...
DBIERR_DIRBUSY : 코딩....
DBIERR_KEYVIOL : ShowMessage('중복되는 코드가 존재합니다!!');
end;
end;
DataSet.Cancel();
Action := daAbort;
end;
좀더 탄력적인 코딩을 위해선 1번을 추천합니다.
그럼, 도움이 되길... 즐통하세요!!
p.s 내껀 왜 대답이 안 올라오지????????
|