我使用了多线程,在线程中执行存储过程,打开数据库是用odbc,
打开存储过程时报错,odbc用多线程有哪些限制,odbc用多线程要注意哪些问题,
我只有一天时间了,我不可能再把它改成ado亚,
各位高手,帮帮我

解决方案 »

  1.   

    UINT QueryBusProc(LPVOID pParam)
    {    
         CMySet rs(&db);
          strSQL = "{CALL bp_GetData('1','as')}";       try
    {
       ASSERT(rs.Open(strSQL)!=0);
    }
    catch(CDBException *e)
    {
      TRACE("%s",e->m_strError);
    }
          ....
    }
    打开的时候,出现e->m_strError“超时已过期“,是因为这个线程触发的比较频繁,出错,在别的线程用的时候都没错,是不是要用
    waitForSingleObject();
    这个我没用过,不知道怎么用,
      

  2.   

    你要处理好多线程的同步问题
    有4种办法的;
    我的办法:(其中之一)
    HANDLE hMutex;
    hMutex = CreateMutex( NULL, FALSE, NULL );
    /////////////////////////////////////以下部分加在你每个线程公用的、可能会冲突的数据库操作中
    WaitForSingleObject(h_Mutex, 1000);//等待绿灯好通过
    //数据库独占操作;
    ReleaseMutex(h_Mutex);
    CloseHandle(hMutex);
      

  3.   

    请问ODBC多线程到底如何设计?
    能不能详细一点?最好有一个简单的例程!
    谢谢!
      

  4.   

    哪位高手能不能详细一点介绍以下ODBC多线程的设计?
    最好能够给出一个简单的例程!
    请发:[email protected]
      

  5.   

    我也遇到同样问题。借宝地学习学习。
    to  wabc(wabc)
    1、一个线程在同一时间必须独占一个连接;
    2、进程中的连接数要小于数据库最大连接数。
    如果都是读操作,可以同时有多个连接吗?
    数据库的最大连接数是多大?Access不支持多线程,那么他的最大连接数是1吗?