想用ADOQuery执行一条insert词句,如下:
sql:='insert into JL(XM) values (''王五'')';
ADOQuery.close;
ADOQuery.sql.clear;
ADOQuery.sql.add(sql);
ADOQuery.open;
运行时总会出现一个错误,意思是说没有返回记录集。但内空却成功添加了。什么原因,请高手赐教。

解决方案 »

  1.   

    sql:='insert into JL(XM) values (''王五'')';
    ADOQuery.close;
    ADOQuery.sql.clear;
    ADOQuery.sql.add(sql);
    ADOQuery.ExecSQL;
      

  2.   

    ADOQuery.open;
    改为ADOQuery.execsql;
      

  3.   

    ADOQuery.open;换成ADOQuery.execsql;
      

  4.   

    open是执行并返回数据集,execsql是执行但不返回数据集你open操作要反回数据集,但此时操作有没有数据返回,所以报错
      

  5.   

    对数据库用sql进行查询以外的操作都要用execsql操作的
      

  6.   

    open适用于select查询语句对于insert,update,delete等语句应使用execsql;
      

  7.   

    ADOQuery.open;
    改为ADOQuery.execsql;
      

  8.   

    open是执行并返回数据集,execsql是执行但不返回数据集你是插入,
    所以execsql就可以了。如果只是插入,
    也可以考虑用AdoCommand。
      

  9.   

    sql:='insert into JL(XM) values (''王五'')';
    ADOQuery.close;
    ADOQuery.sql.clear;
    ADOQuery.sql.add(sql);
    ADOQuery.open改为ADOQuery.execsql
      

  10.   

    sql:='insert into JL(XM) values (''王五'')';
    ADOQuery.close;
    ADOQuery.sql.clear;
    ADOQuery.sql.add(sql);
    ADOQuery.ExecSQL;
      

  11.   

    大家都回答对了,我只采用FIFG规则(first in first get the score)