在线程中访问数据库出现“尚未调用CoInitialize()”是为什么?

ZhouLeihot 2004-06-21 06:06:20
我在一个窗体里面设置了ADOCommand数据库访问控件,并且自己做了一些供外部可访问的公共函数,这些函数具体操作数据库。在另外一个线程中得到这个窗体的指针。然后在线程中利用这个窗体的函数来访问数据。但是却弹出“尚未调用CoInitialize()”的错误。但是以前也是中结构,没有任何问题。对这个线程和这个窗体做了一些修改,然后出现这个错误。出现问题的时候是给ADOCommand控件的CommandText属性幅值的时候弹出的。

不知该如何解决?请教高手。谢谢
...全文
144 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
stiwin 2004-06-22
  • 打赏
  • 举报
回复
这个问题很怪...你可以在定义的时候用ADOCommand执行一下就OK了

如:
adocommand->commandtext="delete table where 1=2";
adocommand->execute 就能用了.并不是CoInitialize就可以了的
ZhouLeihot 2004-06-21
  • 打赏
  • 举报
回复
我在线程开始的时候调用了CoInitialize(NULL)函数。现在可以执行了。但是我想确认一下,如果有两个线程,这两个线程都使用的COM库,那么是否两个线程都必须调用CoInitialize()函数呢?而每个线程的CoUninitialize只是针对自己的线程释放COM库,而不会影响到其它的线程呢?

1,178

社区成员

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

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