Q&A

  • SQL에서 검색..(추출이 아닌 키가 있는지 검색만..)
안녕하세요.

여러분들이 성의있게 답변을 해주셔서 무척 감사하고 있습니다.



SQL에서 검색을 하려고 하는데요.

Where 문으로 추출을 하려고 하는게 아니고 - Table 콤포넌트에서 쓰는 FindKey처럼 - 해당 하는게 있는지 검색만 하려고 합니다.

FindField나 FindFirst,FineNext등은 파일을 찾는데 쓰는것 같아서 아닌것 같구요.

SQL에서 사용하는 방법을 좀 알려주세요.

제가 하려는 것은 어떤 번호를 신규입력하면 그런 번호가 같은게 있는지 검색을 하고, 있으면 메세지를 보내고 그 번호로 가서 편집모드로 전환이 되구요.

없으면 그대로 신규 입력상태로 다음 입력으로 가게 하려고 합니다.

번호에 PK를 줬구요, Uniq 를 걸었기 때문에 같은 번호가 두개 있으면 않되거든요.

많은 도움 부탁드립니다.







위대한 단군혼이 살아있는 나라.... 대한민국

4  COMMENTS
  • Profile
    류종택 2000.03.28 22:33
    아래 친절한 답변이 있지만..

    데이타베이스 설계 부분을 다시 생각해야 하지 않을 까해서요..

    건방진 잔소리로 들리신다면 죄송^^

    여하튼 간단한 프로그램에서야 문제 없다고 해도..

    최선의 방법은 아닌 듯 합니다..

    프로그램 수정/삽입 시마다 FullScan을 해야하니 말입니다..

    파라독스 같은 경우에는 자동으로 필드의 숫자가 늘어나는 타입이 있습니다..

    AutoInc... 필드 타입을 그렇게 하시고..

    해당 필드를 PK로 잡으시면 일일히 검사하실 필요가 없겠지요..





    From 류..



    까마귀 wrote:

    > 안녕하세요.

    > 여러분들이 성의있게 답변을 해주셔서 무척 감사하고 있습니다.

    >

    > SQL에서 검색을 하려고 하는데요.

    > Where 문으로 추출을 하려고 하는게 아니고 - Table 콤포넌트에서 쓰는 FindKey처럼 - 해당 하는게 있는지 검색만 하려고 합니다.

    > FindField나 FindFirst,FineNext등은 파일을 찾는데 쓰는것 같아서 아닌것 같구요.

    > SQL에서 사용하는 방법을 좀 알려주세요.

    > 제가 하려는 것은 어떤 번호를 신규입력하면 그런 번호가 같은게 있는지 검색을 하고, 있으면 메세지를 보내고 그 번호로 가서 편집모드로 전환이 되구요.

    > 없으면 그대로 신규 입력상태로 다음 입력으로 가게 하려고 합니다.

    > 번호에 PK를 줬구요, Uniq 를 걸었기 때문에 같은 번호가 두개 있으면 않되거든요.

    > 많은 도움 부탁드립니다.

    >

    >

    >

    > 위대한 단군혼이 살아있는 나라.... 대한민국

  • Profile
    구창민 2000.03.28 21:04
    까마귀 wrote:

    > 안녕하세요.

    > 여러분들이 성의있게 답변을 해주셔서 무척 감사하고 있습니다.

    >

    > SQL에서 검색을 하려고 하는데요.

    > Where 문으로 추출을 하려고 하는게 아니고 - Table 콤포넌트에서 쓰는 FindKey처럼 - 해당 하는게 있는지 검색만 하려고 합니다.

    > FindField나 FindFirst,FineNext등은 파일을 찾는데 쓰는것 같아서 아닌것 같구요.

    > SQL에서 사용하는 방법을 좀 알려주세요.

    > 제가 하려는 것은 어떤 번호를 신규입력하면 그런 번호가 같은게 있는지 검색을 하고, 있으면 메세지를 보내고 그 번호로 가서 편집모드로 전환이 되구요.

    > 없으면 그대로 신규 입력상태로 다음 입력으로 가게 하려고 합니다.

    > 번호에 PK를 줬구요, Uniq 를 걸었기 때문에 같은 번호가 두개 있으면 않되거든요.

    > 많은 도움 부탁드립니다.

    >

    >

    >

    > 위대한 단군혼이 살아있는 나라.... 대한민국





    안녕하세요~ 구창민입니다.



    아래를 참고 하시어 한번 해보세요.



    with Table1 do

    begin

    if not FindKey([특정필드명]) then

    begin

    Append;

    FieldByName('특정필드명').asstring := '값';

    FieldByName('특정필드명').asstring := '값';

    Refresh;

    end

    else

    begin

    Application.MessageBox(

    '이미 자료가 있다네~ 있다네~','확인', MB_OK+MB_ICONWARNING);

    // 이곳에 Append나 Insert를 사용해서 새로운 레코드를

    삽입하면 되겠네요.

    Exit;

    end;

    end;



    그럼 즐거운 프로그래밍 하시길~



    P.S: 하얀까마귀님과 친구신가요? ^^

  • Profile
    까마귀 2000.03.28 21:17
    구창민 wrote:

    > 까마귀 wrote:

    > > 안녕하세요.

    > > 여러분들이 성의있게 답변을 해주셔서 무척 감사하고 있습니다.

    > >

    > > SQL에서 검색을 하려고 하는데요.

    > > Where 문으로 추출을 하려고 하는게 아니고 - Table 콤포넌트에서 쓰는 FindKey처럼 - 해당 하는게 있는지 검색만 하려고 합니다.

    > > FindField나 FindFirst,FineNext등은 파일을 찾는데 쓰는것 같아서 아닌것 같구요.

    > > SQL에서 사용하는 방법을 좀 알려주세요.

    > > 제가 하려는 것은 어떤 번호를 신규입력하면 그런 번호가 같은게 있는지 검색을 하고, 있으면 메세지를 보내고 그 번호로 가서 편집모드로 전환이 되구요.

    > > 없으면 그대로 신규 입력상태로 다음 입력으로 가게 하려고 합니다.

    > > 번호에 PK를 줬구요, Uniq 를 걸었기 때문에 같은 번호가 두개 있으면 않되거든요.

    > > 많은 도움 부탁드립니다.

    > >

    > >

    > >

    > > 위대한 단군혼이 살아있는 나라.... 대한민국

    >

    >

    > 안녕하세요~ 구창민입니다.

    >

    > 아래를 참고 하시어 한번 해보세요.

    >

    > with Table1 do

    > begin

    > if not FindKey([특정필드명]) then

    > begin

    > Append;

    > FieldByName('특정필드명').asstring := '값';

    > FieldByName('특정필드명').asstring := '값';

    > Refresh;

    > end

    > else

    > begin

    > Application.MessageBox(

    > '이미 자료가 있다네~ 있다네~','확인', MB_OK+MB_ICONWARNING);

    > // 이곳에 Append나 Insert를 사용해서 새로운 레코드를

    > 삽입하면 되겠네요.

    > Exit;

    > end;

    > end;

    >

    > 그럼 즐거운 프로그래밍 하시길~

    >

    > P.S: 하얀까마귀님과 친구신가요? ^^





    안녕하세요.

    답변 감사합니다.

    하얀까마귀님과 친구는 아니고요. 도움은 많이 받고 있지요.

    같은 동족이랍니다. 까마귀...하하.



    제가 원하는 것은요, Table 콤포넌트를 사용해서 하려는 것이 아니고요.

    Query 콤포넌트를 사용해서 하려고 하거든요.

    Table 콤포넌트의 FindKey처럼 Query 콤포넌트에서 할수 있는 방법이 없냐고 물었습니다.

    아시는분 있으시면 좀 가르쳐 주시면 감사하겠습니다.

    아님 다른 방법이라도...

    감사합니다. 꾸벅~~.







    위대한 단군혼이 살아있는 나라.... 대한민국

  • Profile
    구창민 2000.03.28 22:08
    까마귀 wrote:

    > 구창민 wrote:

    > > 까마귀 wrote:

    > > > 안녕하세요.

    > > > 여러분들이 성의있게 답변을 해주셔서 무척 감사하고 있습니다.

    > > >

    > > > SQL에서 검색을 하려고 하는데요.

    > > > Where 문으로 추출을 하려고 하는게 아니고 - Table 콤포넌트에서 쓰는 FindKey처럼 - 해당 하는게 있는지 검색만 하려고 합니다.

    > > > FindField나 FindFirst,FineNext등은 파일을 찾는데 쓰는것 같아서 아닌것 같구요.

    > > > SQL에서 사용하는 방법을 좀 알려주세요.

    > > > 제가 하려는 것은 어떤 번호를 신규입력하면 그런 번호가 같은게 있는지 검색을 하고, 있으면 메세지를 보내고 그 번호로 가서 편집모드로 전환이 되구요.

    > > > 없으면 그대로 신규 입력상태로 다음 입력으로 가게 하려고 합니다.

    > > > 번호에 PK를 줬구요, Uniq 를 걸었기 때문에 같은 번호가 두개 있으면 않되거든요.

    > > > 많은 도움 부탁드립니다.

    > > >

    > > >

    > > >

    > > > 위대한 단군혼이 살아있는 나라.... 대한민국

    > >

    > >

    > > 안녕하세요~ 구창민입니다.

    > >

    > > 아래를 참고 하시어 한번 해보세요.

    > >

    > > with Table1 do

    > > begin

    > > if not FindKey([특정필드명]) then

    > > begin

    > > Append;

    > > FieldByName('특정필드명').asstring := '값';

    > > FieldByName('특정필드명').asstring := '값';

    > > Refresh;

    > > end

    > > else

    > > begin

    > > Application.MessageBox(

    > > '이미 자료가 있다네~ 있다네~','확인', MB_OK+MB_ICONWARNING);

    > > // 이곳에 Append나 Insert를 사용해서 새로운 레코드를

    > > 삽입하면 되겠네요.

    > > Exit;

    > > end;

    > > end;

    > >

    > > 그럼 즐거운 프로그래밍 하시길~

    > >

    > > P.S: 하얀까마귀님과 친구신가요? ^^

    >

    >

    > 안녕하세요.

    > 답변 감사합니다.

    > 하얀까마귀님과 친구는 아니고요. 도움은 많이 받고 있지요.

    > 같은 동족이랍니다. 까마귀...하하.

    >

    > 제가 원하는 것은요, Table 콤포넌트를 사용해서 하려는 것이 아니고요.

    > Query 콤포넌트를 사용해서 하려고 하거든요.

    > Table 콤포넌트의 FindKey처럼 Query 콤포넌트에서 할수 있는 방법이 없냐고 물었습니다.

    > 아시는분 있으시면 좀 가르쳐 주시면 감사하겠습니다.

    > 아님 다른 방법이라도...

    > 감사합니다. 꾸벅~~.

    >

    >

    >

    > 위대한 단군혼이 살아있는 나라.... 대한민국





    구창민입니다.

    점심은 맛있게 드셨나요??



    제가 질문을 잘못 읽었나 보군요. ^^

    온라인 상으로 한번 대충 써볼께요.



    If Query1.Locate('필드명', '찾을문자', [LoPartialKey]) = True then

    showmessage('이미 있다네~ 이미 있다네~')

    else Query1.append;



    이렇게 하시면 이미 존재하는 필드명을 입력하기 전에 찾을수 있겠네요.

    그럼~ 즐거운 프로그래밍 되시길~