Q&A

  • 허걱 경식님 --; 더 심각한 에러가 나는데용
with dm.q_family do

begin

st := '가족관계';

Close;

SQL.Clear;

SQL.Add('select max(nnum) from tel_no1');

Open;

max := FieldByName('max of nnum').AsInteger;

Close; //max integer

SQL.Clear;

SQL.Add('Insert InTo tel_no1 values');

SQL.Add('(:nnum0,:group0,:name0,:tel0,:hp0) ');

//ShowMessage(st);

ParamByName('nnum0').Asinteger := max + 1;

ParamByName('group0').AsString := st;

ParamByName('name0').AsString := name1.Text;

ParamByName('tel0').AsString := tel1.Text;

ParamByName('hp0').AsString := hp1.Text;

ExecSQL; // 입력 수정 삭제시 사용하는 명령어

//showmessage(sql.text);

dm.tbl_tel.Refresh;

end;





이 문장 실행이 안되요 --;;;

dbgrid가 false되면서 field name not found 라는 에러가 --;



디비는 원래꺼 그대로 썼는데 말이죠 --;;;





2  COMMENTS
  • Profile
    안정한 2000.04.01 12:09
    with dm.q_family do

    begin

    st := '가족관계';

    Close;

    SQL.Clear;

    이 3줄 문장을 //////////////////////////////////////////

    SQL.Add('select max(nnum) from tel_no1');

    Open;

    max := FieldByName('max of nnum').AsInteger;

    //////////////////////////////////////////

    이렇게 //////////////////////////////////////////

    SQL.Add('select max(nnum) as cnt from tel_no1');

    Open;

    max := FieldByName('cnt').AsInteger;

    //////////////////////////////////////////



    Close; //max integer

    SQL.Clear;

    SQL.Add('Insert InTo tel_no1 values');

    SQL.Add('(:nnum0,:group0,:name0,:tel0,:hp0) ');

    //ShowMessage(st);

    ParamByName('nnum0').Asinteger := max + 1;

    ParamByName('group0').AsString := st;

    ParamByName('name0').AsString := name1.Text;

    ParamByName('tel0').AsString := tel1.Text;

    ParamByName('hp0').AsString := hp1.Text;

    ExecSQL; // 입력 수정 삭제시 사용하는 명령어

    //showmessage(sql.text);

    dm.tbl_tel.Refresh;

    end;







  • Profile
    정연 2000.04.01 19:50
    안정한 wrote:

    > with dm.q_family do

    > begin

    > st := '가족관계';

    > Close;

    > SQL.Clear;

    > 이 3줄 문장을 //////////////////////////////////////////

    > SQL.Add('select max(nnum) from tel_no1');

    > Open;

    > max := FieldByName('max of nnum').AsInteger;

    > //////////////////////////////////////////

    > 이렇게 //////////////////////////////////////////

    > SQL.Add('select max(nnum) as cnt from tel_no1');

    > Open;

    > max := FieldByName('cnt').AsInteger;

    > //////////////////////////////////////////

    >

    > Close; //max integer

    > SQL.Clear;

    > SQL.Add('Insert InTo tel_no1 values');

    > SQL.Add('(:nnum0,:group0,:name0,:tel0,:hp0) ');

    > //ShowMessage(st);

    > ParamByName('nnum0').Asinteger := max + 1;

    > ParamByName('group0').AsString := st;

    > ParamByName('name0').AsString := name1.Text;

    > ParamByName('tel0').AsString := tel1.Text;

    > ParamByName('hp0').AsString := hp1.Text;

    > ExecSQL; // 입력 수정 삭제시 사용하는 명령어

    > //showmessage(sql.text);

    > dm.tbl_tel.Refresh;

    > end;

    >

    >

    >



    계속 name 필드가 없다구 나오네요



    근데 sql explore에서 값을 넣으면 정상적으로 들어갑니다



    SQL.Add('select max(nnum) from tel_no1');

    Open;

    max := FieldByName('max of nnum').AsInteger;

    showmessage(sql.text); <== 이것만 버튼에 따로넣고

    실행시켜도 field 'name' not found멧세지가 떠요 분명 name필드가 있는데도 말이죠