提示OLE error 80040e2f错误。操作如下:
     ADOTbl.TableName:='TableName';
     ADOTbl.Active:=True;
     ADOTbl.Insert;
     dbgrid1.DataSource.DataSet.FieldByName(fieldname1).AsVariant:=Edit1.Text;
     dbgrid1.DataSource.DataSet.FieldByName(fieldname2).AsVariant:=Edit2.Text;
     .
     .
     ADOTbl.post;
请问错误在哪里?

解决方案 »

  1.   

    你是不是用了SQL语句或存储过程?
      

  2.   

    ADOTbl.FieldByName(fieldname1).AsVariant:=Edit1.Text;
    ADOTbl.FieldByName(fieldname2).AsVariant:=Edit2.Text;
      

  3.   

    to  xiaoqiang123(xiaoqiang):
    我只用了ADOTABLE控件
      

  4.   

    ADOTbl.close;  
    ADOTbl.TableName:='TableName';
       //  ADOTbl.Active:=True;
         ADOTbl.Insert
      

  5.   

    老兄,没有这一句ADOTbl.Active:=True;不行。但加上去是同样的错误.还有别的办法呀?
      

  6.   

    ADOTable1.TableName:='TABLE1';
         ADOTable1.Active:=True;
         ADOTable1.Insert;
         ADOTable1.FieldByName(‘字段名’).AsVariant:=Edit1.Text;
    //     ADOTable1.FieldByName(fieldname2).AsVariant:=Edit2.Text;     ADOTable1.post;
      

  7.   

    to xiaoqiang123(xiaoqiang) :
    写法基本一样,但会出错。
      

  8.   

    to ghyghost(爱国人士):
    有几十个字段,类型有nvarchar,bit,char,numeric,int等。
      

  9.   

    实际上这句中 ADOTable1.FieldByName(‘字段名’).AsVariant:=Edit1.Text;中
    的字段名及Edit1.text都是变量。
      运行状况是数据都加入,但是运行到post时就出错。
      

  10.   

    字段不是问题,因为你用了AsVariant,它们自动转换的,还有,你可以这样调试,你先加前几个段,成功了,再多加几个,看什么时候出错就是那个字段有问题了:)不过,我刚才给的代吗我是用过了成功的啊,怎么到你手上就这么多问题啊?
      

  11.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
         ADOTbl.Active:=True;
         ADOTbl.Insert;
         dbgrid1.DataSource.DataSet.FieldByName('name').AsVariant:=variant(Edit1.Text);
         dbgrid1.DataSource.DataSet.FieldByName('capital').AsVariant:=variant(Edit2.Text);
         ADOTbl.post;
    end;
    在我这好使你试一试
      

  12.   

    to ghyghost(爱国人士):还是一样。
      

  13.   

    to xiaoqiang123(xiaoqiang) :
      解释一下,我是传参数进去的。
      

  14.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    aa,bb:string;
    begin
    aa:='name';
    bb:='capital';
         ADOTbl.Active:=True;
         ADOTbl.Insert;
         dbgrid1.DataSource.DataSet.FieldByName(aa).AsVariant:=variant(Edit1.Text);
         dbgrid1.DataSource.DataSet.FieldByName(bb).AsVariant:=variant(Edit2.Text);
         ADOTbl.post;
    end;楼主你是不是这个意思??