Q&A

  • 파라독스의 Union지원에 대해..
with dm.qrSale do

begin

DisableControls;

Close;

sql.Clear;

sql.Add('SELECT * FROM tbsale.db ');

sql.Add('union ');

sql.Add('SELECT * FROM tbsale2.db WHERE SLDATE=:N1');

ParamByName('N1').AsString:=DateToStr(Date);

Open;

EnableControls;

end;



폼에 dbgrid를 올려놓고 쿼리와 연결했습니다.

(db를 파라독스를 쓰고 델파이3에서 작업)

위와 같이 쿼리를 줬는데 idsql32.dll에서 Access Violation이 일어났습니다.

쿼리빌더상에서 실행시켜보면 잘 되는데 위에서는 왜 에러가 났는지 궁금합니다.

그리고 두개의 db에 똑같은 데이타를 넣고 쿼리빌더에서 실행했더니 레코드수가

53+53=106이 아니라 53개가 나오더군요. 이것은 또 왜 그런지 궁금합니다.

급한 것이니 아시는 분은 꼭 좀 답변바랍니다.



그럼, 즐프하시길...



















1  COMMENTS
  • Profile
    노광주 2000.01.05 02:07
    박성훈 wrote:

    > with dm.qrSale do

    > begin

    > DisableControls;

    > Close;

    > sql.Clear;

    > sql.Add('SELECT * FROM tbsale.db ');

    > sql.Add('union ');

    > sql.Add('SELECT * FROM tbsale2.db WHERE SLDATE=:N1');

    > ParamByName('N1').AsString:=DateToStr(Date);

    > Open;

    > EnableControls;

    > end;

    >

    > 폼에 dbgrid를 올려놓고 쿼리와 연결했습니다.

    > (db를 파라독스를 쓰고 델파이3에서 작업)

    > 위와 같이 쿼리를 줬는데 idsql32.dll에서 Access Violation이 일어났습니다.

    > 쿼리빌더상에서 실행시켜보면 잘 되는데 위에서는 왜 에러가 났는지 궁금합니다.

    > 그리고 두개의 db에 똑같은 데이타를 넣고 쿼리빌더에서 실행했더니 레코드수가

    > 53+53=106이 아니라 53개가 나오더군요. 이것은 또 왜 그런지 궁금합니다.

    > 급한 것이니 아시는 분은 꼭 좀 답변바랍니다.

    >

    > 그럼, 즐프하시길...

    >

    UNION 은 같은 DATA에 대해서는 하나만 나옵니다....

    UNION ALL 을 하면 두 개의 결과가 합쳐져서 나오구요...