我用Query查询SQL2000数据库,
一摸一样的代码,为什么有的模块中不论是否能够查询到匹配记录MyQuery.Recordcount的值怎么都是返回-1,
如果查询不到匹配记录,应该返回0才对。
不知道返回-1是什么问题?
在线请教。
代码:
MyQuery:= TQuery.Create(nil);
try
with MyQuery do
try
DatabaseName := db.DatabaseName;
if Active then Close;
SQL.Clear;
SQLCode := ' select a.stock_name,a.stock_code,a.stock_id,a.unit,b.reserve, '
+ ' a.stock_type,a.factory_id,a.storage_id '
+ ' from run..stock a,run..stock_info b '
+ ' where a.stock_id = ' + '''' + sStockID + '''';
+ ' and a.stock_id = b.stock_id '; SQL.Add(SQLCode);
open;
if RecordCount = 1 then
begin
...
end;
一摸一样的代码,为什么有的模块中不论是否能够查询到匹配记录MyQuery.Recordcount的值怎么都是返回-1,
如果查询不到匹配记录,应该返回0才对。
不知道返回-1是什么问题?
在线请教。
代码:
MyQuery:= TQuery.Create(nil);
try
with MyQuery do
try
DatabaseName := db.DatabaseName;
if Active then Close;
SQL.Clear;
SQLCode := ' select a.stock_name,a.stock_code,a.stock_id,a.unit,b.reserve, '
+ ' a.stock_type,a.factory_id,a.storage_id '
+ ' from run..stock a,run..stock_info b '
+ ' where a.stock_id = ' + '''' + sStockID + '''';
+ ' and a.stock_id = b.stock_id '; SQL.Add(SQLCode);
open;
if RecordCount = 1 then
begin
...
end;
解决方案 »
- 问个问题,用流在exe文件后添加数据,exe文件还可以执行,为什么?
- 这是一段可歌可泣,感人肺腑,地动山摇,荡气回肠的爱情故事.......
- 简单问题:sockect如何传送整形、记录类型、等其它类型数据??
- 如何使界面显示美观?
- 关于打开---存储----显示图片的问题! --------------------在线等待
- 各位师兄:我想作共享软件。但是抛去技术不考虑,我不知道作具体哪一类软件,请告诉我怎样才能得到市场的需求
- 请问这样的sql查询在access数据库如何实现?
- 错误提示:无法插入空行,行必须有一个列值集。。。。但是纪录却明明已经插入进去了,这是怎么回事?
- 别做程序,这里同样可以发财
- 用文本框如何显示小数?????什么函数???
- 有没有能做出IE工具栏样式的控件,显示不完的按钮放在最右边的下拉菜单中?(除了Toolbar2000)
- 急!如何在代码中设置QuickRep(报表)的纸张类型!解决了一定重谢!
只要query.open后加last就不会错了
还有当query和类似dbgrid相连后就不用last也可以用recordcount了
想sql server这种大型数据库都到的都是-1
因为这和数据库工作的方式有关系,数据库引擎不能确切的知道记录总数。
如果你的数据集中有Memo、Blob等大容量且长度无法确知的字段时。
Query.recordcount= -1。如果没有这些字段,那么返回值应该是正常的。
TQuery对于本地数据库操作来说是一种很好的解决方案,而对于SQL数据库而言就不怎么好了,原来在本地数据库上可行的方法在SQL数据库不一定能执行。因为SQL数据库和本地数据库的存贮结构不一样。
但是我想知道一下原因