读书人

数据库与线程有关问题

发布时间: 2012-03-09 21:42:54 作者: rapoo

数据库与线程问题
我首先在主线程中把数据库已经打开。if(Form1->ADOConnection1->Connected!=true) Form1->ADOConnection1->Open();然后在线程中定义TADOQuery *sql1,如下:
class Ttransmit : public TThread
{
private:
HANDLE m_hwnd;
TADOQuery *sql1;
protected:
void __fastcall Execute();
public:
__fastcall Ttransmit(bool CreateSuspended);
void __fastcall Init(int msock,HANDLE hwnd,AnsiString CADD);
};
最后在线程中做sql1->Connection=Form1->ADOConnection1;结果这一步一直执行不结束,请问这是怎么回事,能这样使用吗?是不是非要在每个线程中把数据库单独打开ADOConnection1->Open()

请高手帮忙,在线很急,谢谢!

[解决办法]
在进入线程函数之前, 先设置好sqll 的连接, 然后在Open
[解决办法]
TADOQuery *ADOQ=new TADOQuery(NULL);
ADOQ->Connection=Form1->ADOConnection1;

读书人网 >C++ Builder

热点推荐