if Connection.InTransaction then Connection.RollbackTrans;
        Connection.BeginTrans;
   begin
   Query.FieldByName('dpt_id').AsString:=edit1.Text;
   Query.FieldByName('dpt_name').AsString:=edit2.Text;
   Query.FieldByName('dpt_id').AsBoolean:=strtobool(x);//var x:string
   Query.ExecSQL;
   Connection.CommitTrans;
运行时报错:query: field 'dpt_id' not found,求教

解决方案 »

  1.   

    同意楼上的,Query数据集中没有dpt_id的字段
      

  2.   

    query.sql.clear;
    query.sql.add('select * from dpt');
    query.insert;
    Query.FieldByName('dpt_id').AsString:=edit1.Text;
    Query.FieldByName('dpt_name').AsString:=edit2.Text;
    Query.FieldByName('dpt_id').AsBoolean:=strtobool(x);
    query.post;
      

  3.   

    你先双击你的query看看有没有dpt_id字段
      

  4.   

    Connection的默认数据库指向了哪里?可能指错了而造成找不到这个字段
      

  5.   

    我把代码全贴出来:
    VAR X:string;
    try
    iF CHECK1.Checked THEN X:='1';
    IF NOT CHECK1.Checked THEN  X:='0';
    if datamodule1.DepCnn.InTransaction then datamodule1.DepCnn.RollbackTrans;
            datamodule1.DepCnn.BeginTrans;
       begin
       datamodule1.QryDepart.SQL.Clear;
       datamodule1.QryDepart.sql.Add('select count(*) as dpt_id from department_info where dpt_id='+''''+eid.Text+'''');
       datamodule1.QryDepart.open;
       if datamodule1.QryDepart.FieldByName('DPT_ID').AsInteger>1 then
            Messagebox(0,pchar('123'),'1211',MB_OK+MB_iconwarning)
       Else IF datamodule1.QryDepart.FieldByName('DPT_ID').AsInteger<=1 then
       datamodule1.QryDepart.Insert;
       datamodule1.QryDepart.FieldByName('dpt_id').AsString:=eid.Text;
       datamodule1.QryDepart.FieldByName('dpt_name').AsString:=ename.Text;
       datamodule1.QryDepart.FieldByName('dpt_id').AsBoolean:=strtobool(x);
       datamodule1.QryDepart.Post;
       //datamodule1.QryDepart.ExecSQL;
       datamodule1.DepCnn.CommitTrans;
       datamodule1.QryDepart.Refresh;
       close;
       end;
    except
       begin
       MessageBox(0,pchar('Insert Failed!!!'),'Bath',mb_ok+mb_iconinformation);
       datamodule1.DepCnn.RollbackTrans;
       exit;
       end;
    我照楼上的改了一下,问题依旧。
    运行时报错:query: field 'dpt_id' not found,
      

  6.   

    上面有些错
    应该是:
    datamodule1.QryDepart.Insert;
       datamodule1.QryDepart.FieldByName('dpt_id').AsString:=eid.Text;
       datamodule1.QryDepart.FieldByName('dpt_name').AsString:=ename.Text;
       datamodule1.QryDepart.FieldByName('dpt_state').AsBoolean:=strtobool(x);
    datamodule1.QryDepart.Post;
       //datamodule1.QryDepart.ExecSQL;
       datamodule1.DepCnn.CommitTrans;
       datamodule1.QryDepart.Refresh