Q&A

  • ☆★본문검색...?
한 가지만 더 질문...

DB에서 Text, Memo같은 필드에서 특정단어를 검색할려면 어떻게 해야 하나요?

즉, 본문검색을 하려고 합니다.

고수님들의 가르침 기다리고 있겠습니다...

1  COMMENTS
  • Profile
    이재식 2000.01.02 22:32
    열심희 wrote:

    > 한 가지만 더 질문...

    > DB에서 Text, Memo같은 필드에서 특정단어를 검색할려면 어떻게 해야 하나요?

    > 즉, 본문검색을 하려고 합니다.

    > 고수님들의 가르침 기다리고 있겠습니다...





    이재식 Wrote :

    안녕하십니까?



    타입이 텍스트이든 메모이든 상관 없습니다.

    대개 검색을 하려면 SQL컴포넌트를 써서 like연산을 이용해서

    검색을 하죠. 그런데 이것은 검색결과가 레코드 건별로

    나옵니다. 의도를 잘 모르겠지만, 단어만의 검색이라면

    이렇게 해 보세요. 참고로 blob필드에는 자체적으로 검색기능이

    없습니다.

    즉, 사용자가 코딩을 해야 합니다.



    findPos : integer ;

    begin



    FindPos := pos ('행복', DBMemo1.Text) ;



    if FindPos > 0 then

    begin

    DBmemo1.SetFocus ;

    DBmemo1.SelStart := flag ;

    DBmemo1.SelLength := 4 ; // '행복"이라는 4글자 크기

    end

    else

    showMessage('없습니다') ;



    Buff.Free ;



    이것은 지극히 간단히 예제로써,

    현재 선택된 레코드의 data라는 메모(또는 텍스트)필드에서

    행복이라는 단어를 검색하는 예제입니다.

    검색후 성공하면 해당 글자로 커서가 갈 것입니다.

    이것은 너무 간단하여 한번밖에 찾지를 못하죠.

    즉, 뒤부분에 행복이라는 단어가 또 있으면 찾지를 못합니다.

    한번 실행되니까요.

    이것은 조금만 응용하면 간단히 해결될 수 있습니다.

    while문과 delete함수를 써서 할 수도 있고요.