with DBModule.QInJ do begin
Close;
SQL.Clear;
SQL.Add('Select *');
SQL.Add('from InJepum ');
SQL.Add('Where IJ_Sang="' + fdSang +
'" AND IJ_Name="' + fdName +
'" AND IJ_Type="' + fdType +
'" AND (Extract(Year From IJ_InDate) * 10000 + Extract(Month From IJ_InDate) * 100 + Extract(Day From IJ_InDate))=' + fdDate + ' ');
if Prepared = False then Prepare;
Open;
if RecordCount <> 0 then
ShowMessage('있다')
esle ShowMessage('없다');
end;
IJ_Sang, IJ_Name, IJ_Type = String 필드
IJ_InDate = DateTime 필드
fdDate, fdSang, fdname, fdType = String 변수
이렇게 했는데 없다라는 메시지만 나타나네요.
(Extract(Year From IJ_InDate) * 10000 + Extract(Month From IJ_InDate) * 100 + Extract(Day From IJ_InDate))=' + fdDate + ' '
이 라인을 지우고 검색을 하면 찾는데 이 라인만 들어가면 찾지를 못합니다.
디비를 열어보면 분명히 4가지 조건에 만족하는 데이타가 있거든요.
답변 부탁드리겠습니다.
> with DBModule.QInJ do begin
> Close;
> SQL.Clear;
> SQL.Add('Select *');
> SQL.Add('from InJepum ');
> SQL.Add('Where IJ_Sang="' + fdSang +
> '" AND IJ_Name="' + fdName +
> '" AND IJ_Type="' + fdType +
> '" AND (Extract(Year From IJ_InDate) * 10000 + Extract(Month From IJ_InDate) * 100 + Extract(Day From IJ_InDate))=' + fdDate + ' ');
> if Prepared = False then Prepare;
> Open;
> if RecordCount <> 0 then
> ShowMessage('있다')
> esle ShowMessage('없다');
> end;
>
> IJ_Sang, IJ_Name, IJ_Type = String 필드
> IJ_InDate = DateTime 필드
> fdDate, fdSang, fdname, fdType = String 변수
>
>
> 이렇게 했는데 없다라는 메시지만 나타나네요.
>
> (Extract(Year From IJ_InDate) * 10000 + Extract(Month From IJ_InDate) * 100 + Extract(Day From IJ_InDate))=' + fdDate + ' '
> 이 라인을 지우고 검색을 하면 찾는데 이 라인만 들어가면 찾지를 못합니다.
>
> 디비를 열어보면 분명히 4가지 조건에 만족하는 데이타가 있거든요.
>
> 답변 부탁드리겠습니다.
>
그 조건이 날짜를 가져 오는것 같은데 그렇다면 쿼리오픈전에
ShowMessage(DBModule.QInJ.Text);
해서 확인해보세요.
그리구여 쿼리문을 코딩할 경우에는여 쿼리문을 쿼리빌더나 해당 DB 도구를 이용해서 쿼리를 확인하구 코딩하면 틀릴 경우가 거의 없죠..
그럼, 항상 즐코 하세요.