Q&A

  • 필드명은 나오는데 데이타가 나오질 않아여
IF RADIOGROUP1.ITEMINDEX = 0 THEN



QUERY1.CLOSE;

QUERY1.SQL.Clear;

// SSQL:= SSQL + Format('PGMID = ''%s''',[Trim(EDIT1.Text)]);

SSQL := Format('SELECT PGMID,PGMTITLE FROM DBPGM WHERE PGMID = ''%s''',[TRIM(EDIT1.TEXT)]);

QUERY1.SQL.ADD(SSQL);



TRY

QUERY1.OPEN;

SHOWMESSAGE(SSQL);



// STRINGGRID1.CELLS[1,3]:='KKK';

STRINGGRID1.Cells[0,0] := '프로그램아이디';

STRINGGRID1.Cells[1,0] := '프로그램제목';

STRINGGRID1.CELLS[0,1]:=QUERY1.FIELDS[0].ASSTRING;

STRINGGRID1.CELLS[1,1]:=QUERY1.FIELDS[1].ASSTRING;

QUERY1.SQL.CLEAR;



EXCEPT

Query1.Close;

APPLICATION.MESSAGEBOX('검색도중 에러발생', '에러', MB_OK+MB_ICONINFORMATION);

EXIT;

//Query1.FREE;

end;

Query1.CLOSE;



이렇게 했는데 필드명은 나오는데 데이타는 나오질 않네여

이러한 IF문이 여러가지가 있는데

나머지를 주석처리하고 한코딩만 열어놓으면 되는데

모든 코딩을 한꺼번에 실행시키면 데이타는 나오질 않는군여,

왜그럴까여?

처음에 했을때는 나왔는데

지금은 머가 이상한지..

한번 봐주시겠습니까?



1  COMMENTS
  • Profile
    임형호 2001.02.06 01:24
    초보 wrote:

    > IF RADIOGROUP1.ITEMINDEX = 0 THEN

    >

    > QUERY1.CLOSE;

    > QUERY1.SQL.Clear;

    > // SSQL:= SSQL + Format('PGMID = ''%s''',[Trim(EDIT1.Text)]);

    > SSQL := Format('SELECT PGMID,PGMTITLE FROM DBPGM WHERE PGMID = ''%s''',[TRIM(EDIT1.TEXT)]);

    > QUERY1.SQL.ADD(SSQL);

    >

    > TRY

    > QUERY1.OPEN;

    > SHOWMESSAGE(SSQL);

    >

    > // STRINGGRID1.CELLS[1,3]:='KKK';

    > STRINGGRID1.Cells[0,0] := '프로그램아이디';

    > STRINGGRID1.Cells[1,0] := '프로그램제목';

    > STRINGGRID1.CELLS[0,1]:=QUERY1.FIELDS[0].ASSTRING;

    > STRINGGRID1.CELLS[1,1]:=QUERY1.FIELDS[1].ASSTRING;

    > QUERY1.SQL.CLEAR;

    >

    > EXCEPT

    > Query1.Close;

    > APPLICATION.MESSAGEBOX('검색도중 에러발생', '에러', MB_OK+MB_ICONINFORMATION);

    > EXIT;

    > //Query1.FREE;

    > end;

    > Query1.CLOSE;

    >

    > 이렇게 했는데 필드명은 나오는데 데이타는 나오질 않네여

    > 이러한 IF문이 여러가지가 있는데

    > 나머지를 주석처리하고 한코딩만 열어놓으면 되는데

    > 모든 코딩을 한꺼번에 실행시키면 데이타는 나오질 않는군여,

    > 왜그럴까여?

    > 처음에 했을때는 나왔는데

    > 지금은 머가 이상한지..

    > 한번 봐주시겠습니까?

    >





    한 이벤트 안에

    위와 같은 if문이 여러개 있다는 말씀이신가요?

    그러니까..



    IF RADIOGROUP1.ITEMINDEX = 0 THEN

    .

    .

    .



    IF RADIOGROUP1.ITEMINDEX = 1 THEN

    .

    .

    .



    이런식인가요?

    그렇다면..위에 적어놓은 문장은 잘못된것 같습니다.



    > IF RADIOGROUP1.ITEMINDEX = 0 THEN

    >

    > QUERY1.CLOSE;

    > QUERY1.SQL.Clear;



    여기서... 우선 RADIOGROUP1.ITEMINDEX = 0 일때 실행되는 문장은

    QUERY1.CLOSE <-- 요 한문장입니다.

    그다음줄부터는 RADIOGROUP1.ITEMINDEX 에 상관없이 무조건 실행이되네요.

    BEGIM -- END 로 묶어야 될것 같네요

    그러니까



    IF RADIOGROUP1.ITEMINDEX = 0 THEN

    Begin

    QUERY1.CLOSE;

    QUERY1.SQL.Clear;

    //이하생략

    End;



    IF RADIOGROUP1.ITEMINDEX = 1 THEN

    Begin

    //RADIOGROUP1.ITEMINDEX=1일때 처리

    End;