Q&A

  • select 값을 라벨로 뿌릴때 에러가 납니다.
안녕하세요.

쿼리문으로 select된 값을 라벨 켑션으로 뿌릴려고 하는데요..

에러가 나서 질문합니다.



밑에 소스구요..



procedure TfrmKj.txtJumcdKeyPress(Sender: TObject; var Key: Char);

begin

if (Key = #13) and (Length(txtJumcd.text) = 5) then

begin

with Query1 do begin

// SQL.Text := 'select stornm from mmsa110m where storcd = :storcd and areacd = :areacd';

SQL.Text := 'select stornm from mmsa110m where storcd = 02753 and areacd = 01';

// ParamByName('storcd').AsString := txtJumcd.Text;

// ParamByName('areacd').AsString := areacd;

ExecSQL;

lblJumcd.Caption := FieldByName('stornm').AsString;

txtR1tm.SetFocus;

end;

end;

end;



실행하면

Query1: Field 'stornm' not found.

란 에러가 발생합니다.



오라클에서 직접 쿼리문을 실행하면 아래와 같이 잘 나오구요...

SQL> select stornm from mmsa110m where storcd = 02753 and areacd = 01;



STORNM

--------------------

연안비취점



SQL>



근데 어째서 에러가 날까요?

고수님들의 답변바랍니다....

2  COMMENTS
  • Profile
    초보자 2001.02.15 22:21
    김정균 wrote:

    > 안녕하세요.

    > 쿼리문으로 select된 값을 라벨 켑션으로 뿌릴려고 하는데요..

    > 에러가 나서 질문합니다.

    >

    > 밑에 소스구요..

    >

    > procedure TfrmKj.txtJumcdKeyPress(Sender: TObject; var Key: Char);

    > begin

    > if (Key = #13) and (Length(txtJumcd.text) = 5) then

    > begin

    > with Query1 do begin

    > // SQL.Text := 'select stornm from mmsa110m where storcd = :storcd and areacd = :areacd';

    > SQL.Text := 'select stornm from mmsa110m where storcd = 02753 and areacd = 01';

    > // ParamByName('storcd').AsString := txtJumcd.Text;

    > // ParamByName('areacd').AsString := areacd;

    > ExecSQL;

    > lblJumcd.Caption := FieldByName('stornm').AsString;> 실행하면

    > txtR1tm.SetFocus;

    > end;

    > end;

    > end;

    >



    > Query1: Field 'stornm' not found.

    > 란 에러가 발생합니다.

    >

    > 오라클에서 직접 쿼리문을 실행하면 아래와 같이 잘 나오구요...

    > SQL> select stornm from mmsa110m where storcd = 02753 and areacd = 01;

    >

    > STORNM

    > --------------------

    > 연안비취점

    >

    > SQL>

    >

    > 근데 어째서 에러가 날까요?

    > 고수님들의 답변바랍니다....



    select 시에는 execsql이 아니고 open을 해야합니다.



    참고로 execsql은 insert,update,delete할때에 사용됩니다.

  • Profile
    김정균 2001.02.15 23:58
    Open을 써서



    procedure TfrmKj.txtJumcdKeyPress(Sender: TObject; var Key: Char);

    begin

    if (Key = #13) and (Length(txtJumcd.text) = 5) then

    begin

    with Query1 do begin

    Close;

    // SQL.Text := 'select stornm from mmsa110m where storcd = :storcd and areacd = :areacd';

    SQL.Text := 'select stornm from mmsa110m where storcd = 02753 and areacd = 01';

    // ParamByName('storcd').AsString := txtJumcd.Text;

    // ParamByName('areacd').AsString := areacd;

    // ExecSQL;

    Open;

    lblJumcd.Caption := FieldByName('stornm').AsString;

    txtR1tm.SetFocus;

    end;

    end;

    end;



    실행시키면



    Table does not exist.

    ORA-00942: ??? ?? ?? ???? ????.



    란 에러가 나는군요...



    초보자 wrote:

    > 김정균 wrote:

    > > 안녕하세요.

    > > 쿼리문으로 select된 값을 라벨 켑션으로 뿌릴려고 하는데요..

    > > 에러가 나서 질문합니다.

    > >

    > > 밑에 소스구요..

    > >

    > > procedure TfrmKj.txtJumcdKeyPress(Sender: TObject; var Key: Char);

    > > begin

    > > if (Key = #13) and (Length(txtJumcd.text) = 5) then

    > > begin

    > > with Query1 do begin

    > > // SQL.Text := 'select stornm from mmsa110m where storcd = :storcd and areacd = :areacd';

    > > SQL.Text := 'select stornm from mmsa110m where storcd = 02753 and areacd = 01';

    > > // ParamByName('storcd').AsString := txtJumcd.Text;

    > > // ParamByName('areacd').AsString := areacd;

    > > ExecSQL;

    > > lblJumcd.Caption := FieldByName('stornm').AsString;> 실행하면

    > > txtR1tm.SetFocus;

    > > end;

    > > end;

    > > end;

    > >

    >

    > > Query1: Field 'stornm' not found.

    > > 란 에러가 발생합니다.

    > >

    > > 오라클에서 직접 쿼리문을 실행하면 아래와 같이 잘 나오구요...

    > > SQL> select stornm from mmsa110m where storcd = 02753 and areacd = 01;

    > >

    > > STORNM

    > > --------------------

    > > 연안비취점

    > >

    > > SQL>

    > >

    > > 근데 어째서 에러가 날까요?

    > > 고수님들의 답변바랍니다....

    >

    > select 시에는 execsql이 아니고 open을 해야합니다.

    >

    > 참고로 execsql은 insert,update,delete할때에 사용됩니다.