procedure TfmMEM001.Rrest_Search;
var
Row : Integer ;
begin
Row := 0 ;
ADOQuery1.Close ;
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Text :=
' SELECT '
+ #13 + ' R01_APPLNO , '
+ #13 + ' R01_HNNAME , '
+ #13 + ' C05_LOWXNA , '
+ #13 + ' substring(R01_APDATE , 1 , 4) + ''-'' + substring(R01_APDATE , 5 , 2) + ''-'' + substring(R01_APDATE , 7 , 2) , '
+ #13 + ' substring(R01_ENTRDT , 1 , 4) + ''-'' + substring(R01_ENTRDT , 5 , 2) + ''-'' + substring(R01_ENTRDT , 7 , 2) , '
+ #13 + ' substring(R01_RECVDT , 1 , 4) + ''-'' + substring(R01_RECVDT , 5 , 2) + ''-'' + substring(R01_RECVDT , 7 , 2) , '
//{01} + #13 + ' DATEDIFF ( YEAR , R01_APDATE , GETDATE ()), '
// 현재년도에서 R01_APDATE(날자)에서 년도를 뺀 년차를 보여주고 싶은 이부분도 에러가 납니다.
// 문자열을 datetime 으로 변환하는 중 구문 오류가 발생했습니다. 라고 나와서 주석으로 뺌
+ #13 + ' ( SELECT COUNT (R16_APPLNO) '
+ #13 + ' FROM R16_REST '
+ #13 + ' WHERE R16_APPLNO = A.R01_APPLNO '
+ #13 + ' AND R16_RESTCO = ''0010'' '
+ #13 + ' ) '
+ #13 + ' FROM '
+ #13 + ' R01_APPL A , '
+ #13 + ' C05_COMD '
+ #13 + ' WHERE '
+ #13 + ' R01_STATGU = C05_LOWXCO '
+ #13 + ' AND '
+ #13 + ' C05_HIGHCO = ''R020'' '
+ #13 + ' AND '
+ #13 + ' R01_STATGU IN (''0020'' , ''0040'' , ''0090'') '
+ #13 + ' AND '
+ #13 + ' R01_APDATE = :p_Date1 '
// 날자데이타 R01_APDATE(Varchar , 8자리)
+ #13 + ' ORDER BY '
+ #13 + ' R01_APPLNO '
+ #13 + ' ADOQuery1.Parameters.ParamByName(''p_Date1'').asString := pMsApdate1.text ' ;
// 이렇게 하고 실행하면 실행은 되나 pMsApdate1.maskedit에 날자를 넣고(2008-08-30) 검색을 하면 에러나옴 -> 매개변수 개체를 잘못 정의했습니다. 제공된 정보가 일치하지 않거나 완전하지 않습니다. 라고...
ADOQuery1.Open ;
if ADOQuery1.IsEmpty then
begin
Exit ;
end;
StrGrid1.RowHeights[01] := StrGrid1.RowHeights[00] ;
while not ADOQuery1.Eof do
begin
StrGrid1.Cells[00 , Row + 1] := '' ;
StrGrid1.Cells[01 , Row + 1] := ADOQuery1.Fields[00].AsString ;
StrGrid1.Cells[02 , Row + 1] := ADOQuery1.Fields[01].AsString ;
StrGrid1.Cells[03 , Row + 1] := ADOQuery1.Fields[02].AsString ;
StrGrid1.Cells[04 , Row + 1] := ADOQuery1.Fields[03].AsString ;
StrGrid1.Cells[05 , Row + 1] := ADOQuery1.Fields[04].AsString ;
StrGrid1.Cells[06 , Row + 1] := ADOQuery1.Fields[05].AsString ;
// StrGrid1.Cells[07 , Row + 1] := ADOQuery1.Fields[06].AsString ;
Row := Row + 1 ;
StrGrid1.RowCount := Row + 1 ;
AdoQuery1.Next ;
Application.ProcessMessages ;
end;
end;
분명 잘못된 부분이 있습니다만...
고수님들이 보시기엔 단순해 보일지라도 제겐 너무나 큰 어려움으로 와 닿습니다. 길라잡이가 되어주십시오.
제가 처리하려고 하는것은...
ADOQuery를 이용해서 날자(마스크에디터)를 받아서 조건에 맞는 결과를 스트링그리드에 뿌려주고 싶습니다.
위에서 처리하려고 하는 방법이 아니더라도 처리할 수 있는 방법을 알려주시면 공부해서 제것으로 만들어보겠습니다.
질문이 두서도없고, 정리도 안된듯 하여 지송해요. 다음번에 질문을 남길때는 오늘보다는 조금 간단명료하게 작성하도록 델파이공부 많이하겠습니다.