SOL中的SELECT语句中当返回为无时,返回类型是什么?(15分)

  • 主题发起人 主题发起人 mhd
  • 开始时间 开始时间
M

mhd

Unregistered / Unconfirmed
GUEST, unregistred user!
用什么方法处理。
 
返回一空集
可用query1.recordcount是否为0为判断
 
最好的方法是
if (Query1.Eof)and(Query1.Bof) then
//结果集为空
else //非空
这个方法对Query、Table、StoredProcedure都可以

有些时候Query不让用RecordCount,说不可访问,我很早以前遇到过
这个问题,不过现在没有遇到过了,不知道怎么回事
 
if query1.isempty then ....
 
返回类型是NULL吧
 
无返回值时RecordCount=0,但会报错,说无法定位光标.
可考虑如下方法:
try
Query1.Open
except
Query1.ExecuteSQL
end;
 
sorry
一时大意,应为:
try
Query1.Open
except
Query1.ExecSQL
end;
 
recordcount会有一些问题,请见已答问题.
还是用eof()/isempty好
 
query 的返回问题与 是否使用query.open 或 query.execsql 有关.

query.open 返回 纪录集, execsql 则不产生 纪录集,

例1:
query.sql.text :="select code,name from mytable" ;
query.execsql ;
i = query.fieldbyname("code").asinteger ;
则出错.说 code 没发现.
换成 :query.open
则可以.
判纪录集为空 用 query.isempty .





 
query.rowaffecred=-1
 
应该是Delphi的BUG,当查询结果为空时,Query返回一条全空记录,此时不能用Eof
和bof来判断(判断结果为非空)。用RecordCount也不准。最简单的判断方法是为
数据库设一个 Not Null字段,通常情况下如ID号,自动增量字段,触发器字段等。
当判断到Not NUll字段为空时,即可表明查询结果为空。请大家用代码验证此问题。
 
多人接受答案了。
 
后退
顶部