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개가 나오더군요. 이것은 또 왜 그런지 궁금합니다.
급한 것이니 아시는 분은 꼭 좀 답변바랍니다.
그럼, 즐프하시길...
> 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 을 하면 두 개의 결과가 합쳐져서 나오구요...