• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
人生之路,职业之路
读书使人充实,交谈使人机敏,写记使人精确;
“动因+兴趣”——决心-持之以恒-见效
博客园    首页    新随笔    联系   管理    订阅  订阅
讨论ADO游标问题
前段时间将VBS脚本中的ADO游标改成客户端游标, 执行起来发生问题,从数据库取数据写文件,写到160万左右,不停的重复写同一条记录写了若干个文件,连续几天都是如此, 检查过写文件源码,没有问题,猜想可能是内存泄漏导致的. 上次我把conn.CursorLocation = adUseServer, 结果执行存储过程就取不到数据了.

问题:
前段时间将VBS脚本中的ADO游标改成客户端游标, 执行起来发生问题,从数据库取数据写文件,写到160万左右,不停的重复写同一条记录写了若干个文件,连续几天都是如此, 检查过写文件源码,没有问题,猜想可能是内存泄漏导致的.
上次我把conn.CursorLocation = adUseServer, 结果执行存储过程就取不到数据了.

从网上找来的游标理解:
简单理解就是结果集保存的位置,对于客户端游标,结果集将会被吓载到本地,这样对于大数据量查询,会导致网络资源的严重占用,而服务器端游标直接将结果集保存到服务器上,可以大大提高页面的处理速度,但一般都不太使用后者(需要配置,而且涉及到安全方面的问题)

服务器端游标将结果集放在服务器的缓冲区内,客户端游标将结果集放在客户机的缓冲区内.  
  服务器端游标对数据的变化有很强的敏感性,客户端游标在处理记录集的速度上有优势,配合仅向前游标等使用可以提高程序的性能,并且少占网络资源,还可以支持较多的其他特性.但使用客户端游标在从服务器读取记录集时较占资源.这要看实际情况使用了

如果在你取到记录集以后,有人修改了数据库里的数据,使用服务器端游标加上动态游标就可以得到最新的数据,这时如果是客户端游标就无法察觉到数据的变化。要根据实际情况来使用。如果你的系统对数据要求即时性较高则可用服务器端游标,反之则使用客户端游标,提高程序性能。使用服务器端游标也可以调用存储过程的,只不过他无法返回记录条数(recordcount)要使用客户端游标就可以了。

posted on 2008-05-07 11:30  FreeBird  阅读(515)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3