ADOQuery2.Active:=true;
ADOQuery2.Insert;
adoquery2['title']:=edit3.text;
ADOQuery2.POST;有ADOQUERY控件,我想按上面的方法新增一条数据,可以吗?
我试的结果总有错,说少了SQL参数.挺奇怪的.

解决方案 »

  1.   

    adoquery2['title']:=edit3.text;//这是WHAT?
    AdoQuery2.FieldByName('title').AsString := Edit3.Text
      

  2.   

    你在设置ADOQUERY的CONNECTION时顺便设置SQL属性.
    你可以看看范例呀!
      

  3.   

    我只是COPY了一点,我想问一下,ADOQUERY.INSERT,这样来插入新记录可以吗?需要注意什么呢?老出错.我看了帮助了.
      

  4.   

    可以:ADOQUERY.INSERT或
    ADOQUERY.APPEND
      

  5.   

    你的表中不只一个FIELD。有的FIELD不能为空,如果你只添加一个FIELD,当然会出错了。
      

  6.   

    NONO!!!不是的,我把它换成
    adoquery.close
    adoquery.sql.text='insert into .....';
    adoquery.execusql这样做插入就没有问题了,但是....一用ADOQUERY.INSERT就出错,错误为:
    Miss SQL 参数.为什么呢?
    但,换成ADOTABLE组件就没有问题了.两种形式都可以的.
    问题!!!
      

  7.   

    啊,对,你真是一针见血!!谢谢你的提醒!
    顺带说一下,ADOQUERY控件,由于是以SQL的命令方式操作库,那是不是没有TABLE属性来指定表吧.
    回复人: dragonstar(云飞扬) ( ) 信誉:100  2002-10-30 16:01:00  得分:0 
     
     
      你是在哪里指定你要插入的数据表名的?
     
     
      

  8.   

    还是用SQL语句来操作比较安全!
    insert into 表名 () value()
      

  9.   

    AdoQuery.Append;
    AdoQuery.FieldByName('title').asstring := edit3.txt
    AdoQuery.Post;
      

  10.   

    sqlstr:='Insert into Products (ProductId,ProductName) Values(:s1,:s2)';
        ADOQuery1.close;
        ADOQuery1.SQL.Clear;
       ADOQuery1.SQL.Add(sqlstr);
       ADOQuery1.Parameters.ParamByName('s1').Value:=Edit1.Text;
       ADOQuery1.Parameters.ParamByName('s2').Value:=Edit2.Text;
       ADOQuery1.ExecSQL;
    这样写入!
      

  11.   

    ADOQuery1.insert;这样用可以吗?我试了不行,不知哪里错了
      

  12.   

    一般ADOQuery控件是结合SQL语句用的,如要直接用insert,delete,append一般用ADODataSet控件。
    在ADOQuery上我也没有用Insert语句成功过。
      

  13.   

    agree with love4u:
        ADOQuery1.close;
        ADOQuery1.SQL.Clear;
       ADOQuery1.SQL.Add('insert into products(productid,productname) values(:s1,:s2)');
       ADOQuery1.Parameters.ParamByName('s1').Value:=Edit1.Text;
       ADOQuery1.Parameters.ParamByName('s2').Value:=Edit2.Text;
       ADOQuery1.ExecSQL;
      

  14.   

    看了一下TADOQuery的属性,根本没有地方指定tablename,因此必须在SQL中
    指定,试一试这样行不行:
    ADOQuery2.Close;
    ADOQuery2.SQL.Clear;
    ADOQuery2.SQL.Add('insert into products(productid,productname) values(:s1,:s2)');
    ADOQuery2.Active:=true;
    ADOQuery2.Insert;
    ADOQuery2['s1']:=edit3.text;
    ADOQuery2['s2']:=edit4.text;
    ADOQuery2.POST;
      

  15.   

    你的Query的Sql语句是针对一个表的查询select * from table吗?对于insert,只有简单查询的Query的Insert才能够用这种 
           AdoQuery.FieldByName('title').asstring := edit3.txt
           AdoQuery.Post;
    的方式,否则请自己使用写Insert的sql语句。