首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

CommanText does not return a result set,该如何处理

2012-03-13 
CommanText does not return a result set向SQL Server的一个表中插入一条数据 运行结果提示CommanText do

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字段
...

热点排行