在多线程中使用TClientDataSet出现EOleException'灾难性故障'的异常。

bittcn 2003-02-26 12:05:29
我在多线程中使用TClientDataSet->TDataProvider->TQuery->TDatabase访问数据库,
在第一次时一切正常,但是在第二次调用相同代码Opern ClientDataSet时(ClientDataSet->Open();)出现EOleException'灾难性故障'的异常,此时只有一个线程,并没有多线程并发.多进行几次调用,和ClientDataSet相关联的一个DataGrid则报出EInvalidGridOperation 'Grid index out of range'的异常。
请各位帮忙错误出在什么地方!!!!!不胜感谢。
...全文
118 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bittcn 2003-02-27
  • 打赏
  • 举报
回复
to hoo000(火箭),你的方法不行.
我现在只好加锁,这很不情愿.这将大大降低效率!
hoo000 2003-02-26
  • 打赏
  • 举报
回复

第2次调用之前是不是把TDataProvider、TQuery等指针修改过?出现这个问题,关闭一下clientdataset在打开就可以了吧。

1,178

社区成员

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

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