Form1 에 Table1을 만들고 DataSource와 .Qeury,DBGrid 를 만들어 연결했습니다.
Table1에 연결된 Tel.DB에는 아무런 인덱스 키(필드)도 지정하지 않았습니다.
인덱스키를 지정하지않아야하는 사정이 있거든요.
이렇게 인덱스를 지정하지않은 테이블에서 특정필드에있는 지우려고하는 문자열과
같은 레코드가 같은필드에 하나이상 또있는가를 검색하려고하는데 잘되지를 않는군요.
밑에는 아주엉성한 제가만든 코드인데 어떻게 수정해야 하나요?
답변 부탁드립니다.
===============================================================
SearchKey := Form1.Table1.FieldByName('작업일').AsString;
Form1.Table1.SetKey;
Form1.Table1.FieldByName('작업일').AsString := SearchKey;
if Form1.Table1.GotoKey then Table1.Delete();
===============================================================
> Form1 에 Table1을 만들고 DataSource와 .Qeury,DBGrid 를 만들어 연결했습니다.
> Table1에 연결된 Tel.DB에는 아무런 인덱스 키(필드)도 지정하지 않았습니다.
> 인덱스키를 지정하지않아야하는 사정이 있거든요.
> 이렇게 인덱스를 지정하지않은 테이블에서 특정필드에있는 지우려고하는 문자열과
> 같은 레코드가 같은필드에 하나이상 또있는가를 검색하려고하는데 잘되지를 않는군요.
> 밑에는 아주엉성한 제가만든 코드인데 어떻게 수정해야 하나요?
> 답변 부탁드립니다.
> ===============================================================
> SearchKey := Form1.Table1.FieldByName('작업일').AsString;
> Form1.Table1.SetKey;
> Form1.Table1.FieldByName('작업일').AsString := SearchKey;
>
> if Form1.Table1.GotoKey then Table1.Delete();
> ===============================================================
===================================================================================
약간의 문제가 있기는 하지만 차라리 이렇게 쓰시는 것보다는 Locate를 쓰시는 것이 낳지 않을 까요?
아니면 인덱스를 검색할 때 잠깐만드시고 결과를 뿌리고 나서 Free를 시키시는 것도 하나의 방법 이겠죠..
뭐 일단 저는 테이블을 선호하는 편이 아니라서 정확히 문제점에 대한 답변을 드리기는 힘들지만 그래도 제가 생각하기에는 Locate나 아님 인덱스를 만들어서 나중에 없애시면 될 것 같은 데요..
답변이 됐는 지는 모르겠지만 그럼 이만..
수고 하세요,