我用ADODataSet来连接一个表,使用commandtext的属性在表中insert一条纪录。但是程序执行结果出错我的程序
ADODataSet1.Active:=false;
ADODataSet1.CommandText:='INSERT INTO table1 (name) VALUES('''test''');'
ADODataSet1.Active:=true;//这句出错了弹出的异常有两个:
1.我的应用程序出错,“current provider does not support returning multiple recordsets from a single execution”,好像是我的connectionstring中的provider有问题。我的connectionstring是'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(Application.ExeName)+'test.mdb;Persist Security Info=False';
2.是EDatabaseError异常,“Command Text does not return a result set”!为什么会出错呢?应该怎样改?
谢谢

解决方案 »

  1.   

    第一个问题自己检查一下ConnectionString吧第二个问题:
    改成:
      ADODataSet1.CommandText:='INSERT INTO table1 (name) VALUES(''test'')';
      

  2.   

    建议你用动态参数,这样好一点。values(:a1,:a2,:a3,........)
    parambyname('a1').value:='test';
    ...........
      

  3.   

    是应该用adodataset1.execute,
    不是adodataset1.active:=true;
      

  4.   

    使用 ADOQuery。
    ADODataSet 不支持在 CommandText 中写 insert、update、delete 。
      

  5.   

    ADODataSet1.Active:=false;
    ADODataSet1.CommandText:='INSERT INTO table1 (name) VALUES(''test'')';
    ADODataSet1.Active:=true;//这句出错了
      

  6.   

    ADODataSet1.Active:=false;
    ADODataSet1.CommandText:='INSERT INTO table1 ([name]) VALUES(''test'')';
    ADODataSet1.Active:=true;//这句出错了