PB调用ASA的游标资源为何不能释放,测试了ASA7,ASA8,ASA9都是这个现象,换MSSQL就正常,急!

RechardXc 2006-04-20 09:44:46
PB8 + asa8.02 一个程序通过定时器循环查询数据,用游标,发现程序耗用内存不断增长。于是做了一个试验在一个按钮事件中:

String ls_syntax

ls_syntax = ... ...

For i = 1 to 1000

declare mycursor Dynamic Cursor for sqlsa;
prepare sqlsa from :ls_syntax;
open dynamic mycursor;

fetch mycursor into: ... ...

close mycursor

Next

发现内存增长后不会释放; 切换数据库用MSSQL后程序调用游标资源释放正常,对动态游标的测试我从PB6.5 到 PB10,ASA7到ASA9都测了, 无法释放资源,是否二者的连接需要某些特殊参数呢?
有谁能帮解决一定给分,分不够可以再加!!!
...全文
394 13 打赏 收藏 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
mnsiii 2006-05-16
  • 打赏
  • 举报
回复
大家都讨论的这么清楚了
RechardXc 2006-05-08
  • 打赏
  • 举报
回复
这个后来判断应该是PB本身的漏洞,已经全部改成静态游标解决;其实除了动态游标,包括一些存储过程,甚至某些函数这次也测试发现有不能释放资源的问题。
CSFU_FLY 2006-05-04
  • 打赏
  • 举报
回复
你把close mycursor放在next下面的看一下能不能一次性释放游标
dnvcc 2006-04-29
  • 打赏
  • 举报
回复
destroy 看一下
WorldMobile 2006-04-20
  • 打赏
  • 举报
回复
close mycursor;
rollback;

加个rollback试试

PB的确有一些BUG,建议不要用游标来实现,你可以换个思路,用数据窗口或者其它方法试试
RechardXc 2006-04-20
  • 打赏
  • 举报
回复
这段代码是为了测试它是否能够释放资源,放在外面效果一样不能释放; 我换了ACCESS数据库,也有这个现象,看来不是ASA的问题,而是ODBC连接方式或许有问题,不过我试了很多参数都没有找到效果;有谁在PB8下用OLE DB连接方式的经验吗?
jimmyxc 2006-04-20
  • 打赏
  • 举报
回复
代码看起来好像是不断的在声明游标再关闭,循环在外层,换个思路试试,不要在大循环内不断的声明游标
RechardXc 2006-04-20
  • 打赏
  • 举报
回复
Deallocate mycursor;在PB里面不认。用execute immediate 'Deallocate mycursor '也没有效果。
lzheng2001 2006-04-20
  • 打赏
  • 举报
回复
close mycursor
Deallocate mycursor //加上这句即可
RechardXc 2006-04-20
  • 打赏
  • 举报
回复
刚测试了一下用OLEDB连接access2000和ASA,问题依旧,而且消耗内存更厉害,晕死!

不是我不想用datastore,如果有哪个兄弟有办法让鼠标在datastore连续检索数据库时不变漏斗闪烁,那么也一样给分,1秒中检索20次;用参数Async的方式偶试了没有作用。
WorldMobile 2006-04-20
  • 打赏
  • 举报
回复
OLEDB的话,你在ODBC里配置数据源驱动时选择PB MERANT OEM 3.70 32-BIT SYBASE ASE

再试试
xiaoplx 2006-04-20
  • 打赏
  • 举报
回复
这是个老问题了,建意不要反复声明游标,用DataStore
RechardXc 2006-04-20
  • 打赏
  • 举报
回复
楼上的方式,测试了,还是不行。因为我做的东西每秒钟要几十次访问数据库,用datastore检索鼠标会不停闪烁影响视觉和操作,所以换了动态游标,没有想到会无法释放资源,升到PB9后发现静态游标的资源不会无限增长(只增长一次),动态游标还是无法释放,不过改静态游标重写代码太多了;所以想换个连接方式测测,有谁用OLE DB连ASA的例子吗?

754

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧