전표등록 프로그램에서 검색버튼을 누르면 다음과 같이 검색을 하고자 합니다...
참고로 query를 사용하고 있으며 검색 대상 필드는 Sdate-날자형 입니다...
기간 : 0000-00-00 ~ 0000-00-00
위의 기간을 입력받아서 해당 기간동안의 데이터를 검색하고 싶습니다...
var m_subdate1, m_subdate2: TDateTime ;
begin
m_subdate1 := DateTimePicker20.Date ;
m_subdate2 := DateTimePicker21.Date ;
if m_subdate1 > m_subdate2 then
begin
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('Select * from g1000000');
SQL.Add('Where sdate >= :a2 and sdate <= :a1') ;
parambyname('a1').asdatetime := m_subdate1;
parambyname('a2').asdatetime := m_subdate2;
end;
end;
if m_subdate1 <= m_subdate2 then
begin
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('Select * from g1000000');
SQL.Add('Where sdate >= :a1 and sdate <= :a2') ;
parambyname('a1').asdatetime := m_subdate1;
parambyname('a2').asdatetime := m_subdate2;
end;
end;
Query1.open ;
Query1.First ;
end;
위와 같이 코딩을 하고나서 debugging을 해보니 DateTimePicker20.Date와 DateTimePicker21.Date값이 이상한 숫자로 표현이 되더군요...
그래서 일자형 변수값에도 물론 숫자가 들어가고요...
어찌되었던 조건에는 따라서 움직이긴 하는데 조건대로 검색된 자료가 나오질 않습니다... 뭐가 잘못된건가요...
고수 여러분 제발 답좀 해주십시요...^^
> 전표등록 프로그램에서 검색버튼을 누르면 다음과 같이 검색을 하고자 합니다...
> 참고로 query를 사용하고 있으며 검색 대상 필드는 Sdate-날자형 입니다...
> 기간 : 0000-00-00 ~ 0000-00-00
> 위의 기간을 입력받아서 해당 기간동안의 데이터를 검색하고 싶습니다...
>
> var m_subdate1, m_subdate2: TDateTime ;
> begin
> m_subdate1 := DateTimePicker20.Date ;
> m_subdate2 := DateTimePicker21.Date ;
> if m_subdate1 > m_subdate2 then
> begin
> with Query1 do
> begin
> Close;
> SQL.Clear;
> SQL.Add('Select * from g1000000');
> SQL.Add('Where sdate >= :a2 and sdate <= :a1') ;
> parambyname('a1').asdatetime := m_subdate1;
> parambyname('a2').asdatetime := m_subdate2;
> end;
> end;
> if m_subdate1 <= m_subdate2 then
> begin
> with Query1 do
> begin
> Close;
> SQL.Clear;
> SQL.Add('Select * from g1000000');
> SQL.Add('Where sdate >= :a1 and sdate <= :a2') ;
> parambyname('a1').asdatetime := m_subdate1;
> parambyname('a2').asdatetime := m_subdate2;
> end;
> end;
> Query1.open ;
> Query1.First ;
> end;
> 위와 같이 코딩을 하고나서 debugging을 해보니 DateTimePicker20.Date와 DateTimePicker21.Date값이 이상한 숫자로 표현이 되더군요...
> 그래서 일자형 변수값에도 물론 숫자가 들어가고요...
> 어찌되었던 조건에는 따라서 움직이긴 하는데 조건대로 검색된 자료가 나오질 않습니다... 뭐가 잘못된건가요...
> 고수 여러분 제발 답좀 해주십시요...^^
>
SQL.Add('Where sdate between :a2 and :a1'); 이렇게 바꿔보세요.