Q&A

  • Query결과를 콤보박스로 넣는법
Query를 한다음 그 결과값에 대한것을 순서대로 콤보박스로 add시키는 방법...

그리고, Query는 dbgrid.. 등 아무곳에도 연결이 안되어 있습니다.

with Query3 do

begin

close;

sql.clear;

sql.add('SELECT prj_mng.emp_code, permaster.per_name ');

sql.add(' FROM prj_mng,permaster ');

sql.add(' WHERE prj_code = :p1 ');

parambyname('p1').AsInteger := StrToInt(ed_prj_code.text);

:

:

Query 결과



사번 이름

================

123456 김말자

001246 이미숙

452632 최진실



여기서 이름만 순서대로 콤보박스에 넣으려고 하는데...

좀 도와주세요...

1  COMMENTS
  • Profile
    윤진석 2000.04.10 11:25
    최은정 wrote:

    > Query를 한다음 그 결과값에 대한것을 순서대로 콤보박스로 add시키는 방법...

    > 그리고, Query는 dbgrid.. 등 아무곳에도 연결이 안되어 있습니다.

    > with Query3 do

    > begin

    > close;

    > sql.clear;

    > sql.add('SELECT prj_mng.emp_code, permaster.per_name ');

    > sql.add(' FROM prj_mng,permaster ');

    > sql.add(' WHERE prj_code = :p1 ');

    > parambyname('p1').AsInteger := StrToInt(ed_prj_code.text);

    > :

    > :

    > Query 결과

    >

    > 사번 이름

    > ================

    > 123456 김말자

    > 001246 이미숙

    > 452632 최진실

    >

    > 여기서 이름만 순서대로 콤보박스에 넣으려고 하는데...

    > 좀 도와주세요...



    요 프로시져를 만들어서 전체 프로젝트에 공통으로 쓰세요



    procedure ApplyToCombo(v_combobox : TCombobox; v_table,

    v_code, v_name : string);

    begin

    v_combobox.Clear;

    with Query do

    begin

    close;

    sql.clear;

    sql.Add('SELECT ' + v_code + ' A ');//'A':필드ALIAS 띄어쓰기 주의

    if v_name <> '' then

    sql.Add(', '+ v_name + ' B '); //'B':필드명ALIAS 띄어쓰기 주의

    sql.Add(' FROM '+ v_table);

    open;

    while not(eof) do

    begin

    if v_name <> '' then

    v_combobox.Items.Add(FieldByName('A').AsString + ' '

    + FieldByName('B').AsString)

    else

    v_combobox.Items.Add(FieldByName('A').AsString );

    next;

    end;

    end;

    end;



    위에서 띄어쓰기 주의라는건 필드명과 ALIAS 가 붙어버리면 SYNTAX에러가

    나니까 하는 얘기입니다..



    SELECT 사번A, 이름B FROM TABLE (x)

    SELECT 사번 A, 이름 B FROM TABLE (o)