디비에디트박스에서, 번호를 입력받아
테이블에 저장을 하려합니다.
만약, 테이블에 같은 번호가 있는지(중복여부)를
알아내려면 어떻게 해야하는지?
만약, 2번을 입력하면, 테이블에 2번이
존재하기때문에, 에러메세지를 내려고
합니다. 다음처럼 했는데, 무조건, 메세지
박스를 내어보내네요. 어떻게 해야 할지!!!
인덱스 키는 없고, 쿼리는 사용할 수 없는 형편입니다.
이를 감안하여 좋은 의견 좀 주시면........
i:=StrToInt(DbEdit1.Text); //번호입력
Table1.First;
Repeat
if (i=Table1.FieldByName('번호').AsInteger) then
begin
MessageDlg('중복된 번호입니다. 다시 입력하세요.',mtWarning,[mbok],0);
DbEdit1.Clear;
DbEdit1.SetFocus;
Exit;
end;
Until Table1.EOF;
> 디비에디트박스에서, 번호를 입력받아
> 테이블에 저장을 하려합니다.
> 만약, 테이블에 같은 번호가 있는지(중복여부)를
> 알아내려면 어떻게 해야하는지?
> 만약, 2번을 입력하면, 테이블에 2번이
> 존재하기때문에, 에러메세지를 내려고
> 합니다. 다음처럼 했는데, 무조건, 메세지
> 박스를 내어보내네요. 어떻게 해야 할지!!!
> 인덱스 키는 없고, 쿼리는 사용할 수 없는 형편입니다.
> 이를 감안하여 좋은 의견 좀 주시면........
>
> i:=StrToInt(DbEdit1.Text); //번호입력
> Table1.First;
> Repeat
> if (i=Table1.FieldByName('번호').AsInteger) then
> begin
> MessageDlg('중복된 번호입니다. 다시 입력하세요.',mtWarning,[mbok],0);
> DbEdit1.Clear;
> DbEdit1.SetFocus;
> Exit;
> end;
> Until Table1.EOF;
>
안녕하세요.
음 전 주로 쿼리를 사용하기 때문에..혹시나 해서 적어봅니다.
밑에 님이 locate 사용하면 된다고 하셧는데..그거 적을께요..
with Query1 do
begin
While not EOF do
if Query1.Locate( '번호', dbEdit1.Text, [LocaseInsenSitive] ) = True then
begin
ShowMessage( '중복' );
DbEdit1.Clear;
DbEdit1.SetFocus;
end;
end;
end;
> i:=StrToInt(DbEdit1.Text); //번호입력
> Table1.First;
> Repeat
> if (i=Table1.FieldByName('번호').AsInteger) then
> begin
> MessageDlg('중복된 번호입니다. 다시 입력하세요.',mtWarning,[mbok],0);
> DbEdit1.Clear;
> DbEdit1.SetFocus;
> Exit;
> end;
> Until Table1.EOF;
>