关于CDataBase与CRecordSet的问题,在线等待……

zhan_yonghua 2003-07-02 03:12:33
请问能不能在程序一开始打开一个CDataBase,然后所有的CRecordSet共享这个CDataBase连接?
我在多个线程中通过同一个CDataBase打个相同的CRecordSet进行读写有没有什么问题?
...全文
33 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhan_yonghua 2003-07-04
  • 打赏
  • 举报
回复
兄弟姐妹们,原来是ORACLE的问题,SQORA32.DLL有BUG,换成ORACLE9I就没问题了,大家也试试,看我的判断是否属实。
测试方法只要在多线程小同时访问一个数据库的一个或多个表,且表中记录要大于一万条。看看有何结果!
cdwy411 2003-07-03
  • 打赏
  • 举报
回复
应该可以的,如果多线程读的话,需要用一些互斥量来保证不发生冲突,
或许对数据库的打开方式进行一些设定也是可以的
jvcit 2003-07-03
  • 打赏
  • 举报
回复
应该可以
gister 2003-07-03
  • 打赏
  • 举报
回复
可以多个线程通过一个CDataBase取多个数据集,数据库自己会做出理,不会产生冲突,关于缓冲的问题也无需做太多的考虑,只要你的内存足够大就可以了。
kickmaster 2003-07-03
  • 打赏
  • 举报
回复
CDataBase连接可以实现长连接,
多个CRecordSet可以就使用这一个CDataBase,但是每个CRecordSet在操作完成后必须释放,
必须捕获CDBException,不然会导致一个数据库连接占用的异常。
zhan_yonghua 2003-07-03
  • 打赏
  • 举报
回复
还是很感谢啊,至少可以帮我肯定一下问题,我是一愁莫展!!!!!
孤必有邻 2003-07-03
  • 打赏
  • 举报
回复
可以共用一个CDatabase,我也这样做过。
也不需要线程同步,就象你说的,数据库会处理。
(其实我什么忙也没帮)
zhan_yonghua 2003-07-03
  • 打赏
  • 举报
回复
继续UP
zhan_yonghua 2003-07-03
  • 打赏
  • 举报
回复
UP
zhan_yonghua 2003-07-03
  • 打赏
  • 举报
回复
我想应该不要线程同步吧,后台数据库不是已经帮我们实现了这些吗?
zhan_yonghua 2003-07-02
  • 打赏
  • 举报
回复
UP
zhan_yonghua 2003-07-02
  • 打赏
  • 举报
回复
如果多个线程打开相同的记录集会怎么样,会发生冲突吗?
另外如果记录集所对应的表相当大,就像我的这个表有上万条记录,是不是要设置数据缓冲区之类的东西?
sunny6281 2003-07-02
  • 打赏
  • 举报
回复
可以
我就是这么做的:)

不过我只用了一个线程。
zhan_yonghua 2003-07-02
  • 打赏
  • 举报
回复
兄弟姐妹们快来帮帮忙啊……

4,011

社区成员

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

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