Q&A

  • Ado에서 발생하는 예외(질문)
델파이 5.0에서 ADO 2.6을 이용한 데이터베이스 프로그램에서

ADOQuery컴포넌트를 이용하여 질의를 할 경우

이 전에 질의 한 Select문에서 조건을 만족하는 레코드가

없을 경우 새로운 Select문으로 자료를 조회하거나

close명령을 사용하면 아래와 같은 예외가 발생합니다.

(

AdoQueryComponent.SQL.Add('Select * from Test Where age = "10"');

AdoQueryComponent.Open(); //여기서 조건을 만족하는 레코드가 없을 경우)



AdoQueryComponent.Close(); //요기서 예외가 발생

AdoQueryComponent.SQL.Clear();

AdoQueryComponent.SQL.Add('Select * from Test);

AdoQueryComponent.open();

)





bof 또는 Eof가 참이거나 ,현재레코드를 삭제했습니다.

요청한 작업에 현재레코드가 필요합니다.



이 예외를 없을 수 있는 방법 좀 부탁합니다.



3  COMMENTS
  • Profile
    지나가는 사람 2001.07.03 04:47
    영식 wrote:

    > 델파이 5.0에서 ADO 2.6을 이용한 데이터베이스 프로그램에서

    > ADOQuery컴포넌트를 이용하여 질의를 할 경우

    > 이 전에 질의 한 Select문에서 조건을 만족하는 레코드가

    > 없을 경우 새로운 Select문으로 자료를 조회하거나

    > close명령을 사용하면 아래와 같은 예외가 발생합니다.

    > (

    > AdoQueryComponent.SQL.Add('Select * from Test Where age = "10"');

    > AdoQueryComponent.Open(); //여기서 조건을 만족하는 레코드가 없을 경우)

    >

    > AdoQueryComponent.Close(); //요기서 예외가 발생

    > AdoQueryComponent.SQL.Clear();

    > AdoQueryComponent.SQL.Add('Select * from Test);

    > AdoQueryComponent.open();

    > )

    >

    >

    > bof 또는 Eof가 참이거나 ,현재레코드를 삭제했습니다.

    > 요청한 작업에 현재레코드가 필요합니다.

    >

    > 이 예외를 없을 수 있는 방법 좀 부탁합니다.





    AdoQueryComponent.Close(); //<==이것이 빠진것같네여

    AdoQueryComponent.SQL.Add('Select * from Test Where age = "10"');

    AdoQueryComponent.Open(); //여기서 조건을 만족하는 레코드가 없을 경우)



    AdoQueryComponent.Close(); //<== 여기서 에러가 발생하는것이 아니고 바로위 Open에서 발생하는 것일겁니다

    AdoQueryComponent.SQL.Clear();

    AdoQueryComponent.SQL.Add('Select * from Test);

    AdoQueryComponent.open();



  • Profile
    박종환 2001.06.12 01:06
    여러번 반복되는 질문입니다.

    저도 이것 때문에 무척 고생한 적이 있습니다.

    델파이 사이트에 Patch 올라와 있습니다.

    1) 우선 Delphi 5.0 Update #1을 설치하시고

    2) MDAC 2.6 을 설치하십시오.

    상위 두개 화일 모두 델파이 홈페이지 사이트에 올라와 있습니다.

  • Profile
    영식 2001.06.13 18:51
    감사합니다.