테이블에서 검색을 할 경우에는 꼭 인덱스가 없어도 검색이 가능합니다...
일반적인 경우 인덱스가 정의되어 있을때. 특정레코드를 검색하기 위한
메서드로는 FindKey, FindNearest, 또는 gotokey, gotoNearest
같은 것들이 있구요....
인덱스가 없을경우 특정레코드를 찾기위해서는 필터로 걸러내서 찾아가는 방식과
Locate메서드를 사용하면 가능합니다...
Locate함수의 원형은
function Locate(const KeyFields : string; const KeyValues : Variant;
Options : TLocateOptions):Boolean; virtual;
사용은 의외로 간단하죠...
procedure TForm1.EditKeyDown(....)
begin
if key = VK_RETURN then
begin
if not Table1.Locate('Number',Edit1.Text,[loPartialKey]) then
Application.MessageBox('찾는 자료가
없습니다.','검색실패',MB_OK);
end;
end;
이런방식을 응용하시면 되지 않을까 싶네요...(특정레코드검색시에는)
그리고,,, 테이블에서 레코드를 검색하면... 그 레코드안의 자료만
검색되구요(맞나???)
쿼리를 사용하게 되면.. sql문을 사용하여 뭐.. 필요한 레코드만 검색한다던지..
다른 테이블자료들과 연결하여.. 필요한 가상의 테이블을 만든다던지...
그렇게 사용하는 것입니다...(-_-;)
저도 내부적으로 어떠한차이가 있는지는 그렇게 자세히 알진 못합니다...
아직 초짜거든요...
요즘 책을 한권 보고 있습니다...
책홍보는 아니지만... "델파이4 데이터베이스 완벽가이드"
가남사에서 나왔네요.. 저자는 이승우씨...
데이ㅏㅌ베이스와 레포트, 그리고, CORBA, MIDAS등에 대해서 비교적
다양하게 나와있네요...
여기보면... 검색이라던가... 레포트라던가.. 뭐 많네요...
서점가서 책한번 찾아보시길....
|