读书人

CommanText does not return a result

发布时间: 2012-03-13 11:21:11 作者: rapoo

CommanText does not return a result set
向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。。。

这是怎么回事。。。



[解决办法]
意译就是你的SQL指令不是一个有返回集的指令。意思是你调用了错误的方法来执行这个指令。

adoquery.open;用来执行有返回结果集的SQL指令; 如 select * from ....

adoquery.exec;用来执行没有返回结果集的SQL指令。如 update ,delete ,create table, alter table....
[解决办法]
补充下:你设置adoquery.active的值,TURE的时候,会调用 open方法;false的时候会调用 Close方法。


[解决办法]
用adoquery.exec来执行没有结果集返回的语句
AdoQuery.Open(); 或AdoQuery.active := true;执行有结果集返回的语句
[解决办法]
你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字段
...

读书人网 >.NET

热点推荐