Q&A

  • db를 불러오고 코드를 그위에 추가하려면
* 사용환경 : 델파이5 / Windows NT

* 에러 메시지 :

안냐세요, 제가 검색을 위해 콤보박스로 db의 코드(필드)를 읽어오는 프로그램을 짜는데요,

문제는 이모든 조건을 만족하는 전체조건 즉 검색조건없음이라는 코드를 삽입하면

콤보박스의 다른 아이템의 코드값이 읽혀진다는 것입니다.

물론 db의 코드에 추가를 하면 않되고 프로그램시에 검색조건없음과 그 코드값 = All을 입력해야 합니다. 그리고 실행시 콤보박스에서 검색조건없음을 선택하면 itemindex가 '0'이 되어야 하구요.

제말 이해가 되세요?

with DM_UPCOM.Q_Ftc do begin

strSQL := 'select ATTR, FNAME, SUB from COM.CMT_CODE_C where TYPE = '''+ 'UP_''';

SQL.Clear;

SQL.Add(strSQL);

open;

cbFtc.ItemIndex := -1;

cbFtc.Items.Clear;if EOF then begin

showmessage('데이타가 없습니다.');

exit;

end;//if



for i := 1 to recordCount do begin

cbFtc.Items.Add(FieldByName('FNAME').AsString);

next;

end;//for



end;//with



여기 어딘가에 코드값이 All이면서 실행시 콤보박스의 itemindex가 0이 되면서 db에서 읽어온 아이템들은 그 다음값인 1부터 적용이 되어야겠죠?

부디 고수분들의 도움 부탁드립니다.



1  COMMENTS
  • Profile
    강호규 2000.08.19 08:55
    토비 wrote:

    > * 사용환경 : 델파이5 / Windows NT

    > * 에러 메시지 :

    > 안냐세요, 제가 검색을 위해 콤보박스로 db의 코드(필드)를 읽어오는 프로그램을 짜는데요,

    > 문제는 이모든 조건을 만족하는 전체조건 즉 검색조건없음이라는 코드를 삽입하면

    > 콤보박스의 다른 아이템의 코드값이 읽혀진다는 것입니다.

    > 물론 db의 코드에 추가를 하면 않되고 프로그램시에 검색조건없음과 그 코드값 = All을 입력해야 합니다. 그리고 실행시 콤보박스에서 검색조건없음을 선택하면 itemindex가 '0'이 되어야 하구요.

    > 제말 이해가 되세요?

    > with DM_UPCOM.Q_Ftc do begin

    > strSQL := 'select ATTR, FNAME, SUB from COM.CMT_CODE_C where TYPE = '''+ 'UP_''';

    > SQL.Clear;

    > SQL.Add(strSQL);

    > open;

    > cbFtc.ItemIndex := -1;

    > cbFtc.Items.Clear;if EOF then begin

    > showmessage('데이타가 없습니다.');

    > exit;

    > end;//if

    >

    > for i := 1 to recordCount do begin

    > cbFtc.Items.Add(FieldByName('FNAME').AsString);

    > next;

    > end;//for

    >

    > end;//with

    >

    > 여기 어딘가에 코드값이 All이면서 실행시 콤보박스의 itemindex가 0이 되면서 db에서 읽어온 아이템들은 그 다음값인 1부터 적용이 되어야겠죠?

    > 부디 고수분들의 도움 부탁드립니다.

    >



    쉬운것 같은데... 어렵게 생각하신 것 같군요.

    제가 이해한 것이 맞나 모르겠네요....



    with DM_UPCOM.Q_Ftc do begin

    strSQL := 'select ATTR, FNAME, SUB from COM.CMT_CODE_C where TYPE = '''+ 'UP_''';

    SQL.Clear;

    SQL.Add(strSQL);

    open;

    cbFtc.ItemIndex := -1;

    cbFtc.Items.Clear;

    if EOF then begin

    cbFtc.Enable := False; // <--- 이부분 추가함

    showmessage('데이타가 없습니다.');

    exit;

    end;//if



    cbFtc.Enable := True; // <--- 이부분 추가함

    cbFtc.Items.Add('ALL'); // <--- 이부분 추가함

    for i := 1 to recordCount do begin

    cbFtc.Items.Add(FieldByName('FNAME').AsString);

    next;

    end;//for



    end;//with