( )接口表示从数据库中返回的结果集。

( )接口表示从数据库中返回的结果集。,第1张

你需要修改调用的参数,增加一个分组(或者)分页参数,例如可以规定为grp,你的程序根据grp值返回1000个一组的不同组,grp为空或者为1返回第一组,grp为2就返回第二组,一次类推。

为什么要这样改造,因为一次接口调用只可以返回一个结果,当结果有多组的时候,只有多次调用。

rsOpen SQL, cn, adOpenStatic, adLockOptimistic

If rsRecordCount <= a Then

改为:

rsopen sql,cn,adopenkeyset, adLockOptimistic

if rsrecordcount=0 then

最重要的是没有实例化对象。 面向对象的话一定要实例化对象, 如果你用VC++的话就会明白的, C++ ,Java等都要求实例化对象。

在:

Dim cn As New ADODBConnection

Dim rs As New ADODBRecordset

后添加:

set cn =new adodbconnection

set rs =new adodbrecordset

还有提供一个连接你看看:里面有一个音乐播放器,有数据库的 *** 作,完整的源代码和设计时窗体:

>

CREATE TABLE temp (

id VARCHAR(10),

name VARCHAR(10),

pay INT

);

INSERT INTO temp

SELECT '000001', '张三', 100 UNION ALL

SELECT '000001', '张三', 200 UNION ALL

SELECT '000001', '张三', 300 UNION ALL

SELECT '000001', '张三', 400 UNION ALL

SELECT '000002', '李四', 1000 UNION ALL

SELECT '000002', '李四', 1200 UNION ALL

SELECT '000002', '李四', 1500 UNION ALL

SELECT '000002', '李四', 1800;

SELECT

id,

name,

pay,

CASE WHEN ROW_NUMBER() OVER (PARTITION BY id ORDER BY pay ) = 1 THEN 0 ELSE 1 END AS ptype

FROM

temp

ORDER BY 1,3;

id name pay ptype

000001 张三 100 0

000001 张三 200 1

000001 张三 300 1

000001 张三 400 1

000002 李四 1000 0

000002 李四 1200 1

000002 李四 1500 1

000002 李四 1800 1

SQL Server 2008 Express 下测试通过

原来的表设置的是自增长的,所以默认显示为顺序显示的。在搜索数据库的时候,也是从低ID到高ID依次搜索的,在没有order by规范的时候,搜索到一个就显示一个,所以是按顺序显示的。这时数据库的缓存是没有存放你的搜索顺序。

你之后加order by之后再搜索,数据库会将你的搜索存在缓存里面的,也就是说现在数据库的缓存存放了你的显示顺序值,所以在以后就算你没有加order by来规范,也会默认按缓存显示(没有规范的时候,怎么显示都可以,所以数据库就不加处理的),如果你加了order by id 搜索之后,再修改一下,例如order by 其它字段,搜索几次之后,再不加 order by

数据库可能就会恢复为 默认为ID顺序显示。

以上就是关于( )接口表示从数据库中返回的结果集。全部的内容,包括:( )接口表示从数据库中返回的结果集。、VB查询ACCESS数据库并返回查询结果。、求助:SQL 数据库根据条件返回值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9435078.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存