向SQL Server的一个表中插入一条数据 运行结果提示CommanText does not return a result set 是怎么回事?
语句是
insert into failinfo values(1,'2011-05-16 17:33:33',1,1,1234567890,1,0)后来我又在ADOQuery总直接在SQL语句中直接填写,然后active设为true,结果提示:
仅当使用了列的列表,并且INENTITY_INSERT为ON时,才能在表‘failinfo’中标识列指定显示值。当我set INENTITY_INSERT failinfo ON 以后,提示又变为CommanText does not return a result set这是怎么回事

解决方案 »

  1.   

    意译就是你的SQL指令不是一个有返回集的指令。意思是你调用了错误的方法来执行这个指令。adoquery.open;用来执行有返回结果集的SQL指令; 如 select * from ....adoquery.exec;用来执行没有返回结果集的SQL指令。如 update ,delete ,create table, alter table....
      

  2.   

    补充下:你设置adoquery.active的值,TURE的时候,会调用 open方法;false的时候会调用 Close方法。
      

  3.   

    用adoquery.exec来执行没有结果集返回的语句
    AdoQuery.Open(); 或AdoQuery.active := true;执行有结果集返回的语句
      

  4.   

    你SQL语句不是select语句,但用了open;应该用execsql
    另:
    Identity字段是不用插入数据的,数据库会自动添加,字段也是自动对应
    比如:insert into t(A,B,C,D) Values(1,2,3)
    A是Identity字段时, 则1,2,3会插入到B,C,D字段
    B是Identity字段时, 则1,2,3会插入到A,C,D字段
    C是Identity字段时, 则1,2,3会插入到A,B,D字段
    ...
      

  5.   

    就是自增长问题,改了就好了,OPEN也是改的时候不小心留下来了,看来以后一定要非常细心啊