델파이 이제 막 시작한 초짜입니다.
회사서 조회관련 프로그램 작성중 에러가 나서요..
고수님들의 답변을 얻고자 글을올립니다.
문제의 쏘쑤는..
SELECT1.DatabaseName := DataBase1.DatabaseName;
With SELECT1 Do begin
SELECT1.Close;
SELECT1.SQL.Clear;
SELECT1.SQL.Add(' SELECT CARD_DT AS CARDDT, ');
SELECT1.SQL.Add(' COUNT(a) AS SSUM, ');
SELECT1.SQL.Add(' COUNT(b) AS KSUM, ');
SELECT1.SQL.Add(' COUNT(c) AS YSUM, ');
SELECT1.SQL.Add(' COUNT(d) AS HSUM, ');
SELECT1.SQL.Add(' COUNT(e) AS BSUM, ');
SELECT1.SQL.Add(' COUNT(f) AS GSUM, ');
SELECT1.SQL.Add(' COUNT(g) AS ASUM, ');
SELECT1.SQL.Add(' COUNT(h) AS LSUM, ');
SELECT1.SQL.Add(' COUNT(CARD_DT) AS CNT ');
SELECT1.SQL.Add(' FROM ( ');
SELECT1.SQL.Add(' SELECT CARD_DT, ');
SELECT1.SQL.Add(' decode(card_co_id, ''01'', CARD_DATA) a, decode(card_co_id, ''02'', CARD_DATA) b, ');
SELECT1.SQL.Add(' decode(card_co_id, ''03'', CARD_DATA) c, decode(card_co_id, ''04'', CARD_DATA) d, ');
SELECT1.SQL.Add(' decode(card_co_id, ''05'', CARD_DATA) e, decode(card_co_id, ''06'', CARD_DATA) f, ');
SELECT1.SQL.Add(' decode(card_co_id, ''07'', CARD_DATA) g, decode(card_co_id, ''08'', CARD_DATA) h ');
SELECT1.SQL.Add(' FROM CARD_OUT_NEW ');
SELECT1.SQL.Add(' WHERE SUBSTR(CARD_DT, 1, 6) = :hCARDDT ');
SELECT1.SQL.Add(' AND STOR_CD = :hSTORCD ');
SELECT1.SQL.Add(' AND STOR_CD <> ''01800'' ');
SELECT1.SQL.Add(' AND SALE_AMT <> ''1991'' ');
SELECT1.SQL.Add(' GROUP BY CARD_DT, CARD_CO_ID, CARD_DATA) X ');
SELECT1.SQL.Add(' GROUP BY CARD_DT ');
ParamByName('hSTORCD').AsString := TRIM(edStorcd.Text);
ParamByName('hCARDDT').AsString := Trim(MaskEdit1.Text);
try
SELECT1.Open;
if SELECT1.RecordCount = 0 then
begin
ShowMessage ('선택한 월 카드매출이 없습니다...');
SELECT1.Close;
Exit;
end;
except
Exit;
end;
wiCount := SELECT1.RecordCount;
StringGrid1.RowCount := wiCount + 1;
For wRet1 := 1 To SELECT1.RecordCount Do
begin
StringGrid1.Cells[0, wRet1] := FIELDBYNAME('CARDDT').AsString;
StringGrid1.Cells[1, wRet1] := FIELDBYNAME('SSUM').AsString;
StringGrid1.Cells[2, wRet1] := FIELDBYNAME('KSUM').AsString;
StringGrid1.Cells[3, wRet1] := FIELDBYNAME('YSUM').AsString;
StringGrid1.Cells[4, wRet1] := FIELDBYNAME('HSUM').AsString;
StringGrid1.Cells[5, wRet1] := FIELDBYNAME('BSUM').AsString;
StringGrid1.Cells[6, wRet1] := FIELDBYNAME('GSUM').AsString;
StringGrid1.Cells[7, wRet1] := FIELDBYNAME('ASUM').AsString;
StringGrid1.Cells[8, wRet1] := FIELDBYNAME('LSUM').AsString;
StringGrid1.Cells[9, wRet1] := FIELDBYNAME('CNT').AsString;
next;
statusBar1.Panels[0].Text := '데이터 조회가 완료되었습니다.';
end;
Button2.SetFocus;
end;
이겁니다.
아직 초보단계라 어느부분이 문제가 있는것인지 파악이 잘안되더군요.
고수님들의 조언좀 부탁드리겠습니다.
하지만..
질문하신 것과 관련해서는
델파이 디버깅 모드를 사용하시는것이. 더욱 정확하실것입니다.
해당 이벤트의 시작부분에 F5를 눌러서. 브레이크 포인트를 걸어놓으신후
실행하세요.
그리고.
F8,F7로 하나씩 따라가보세요.
어느부분이 문제인지 아실수 있습니다.