连接Oracle的ADO操作de简单多线程~

王朝vc·作者佚名  2006-01-09
宽屏版  字体: |||超大  

多线程 (初始化连接数据库 有自己的Splash 显示图片)

// Thread in MySplash Init

HWND hWnd=this->GetSafeHwnd();

m_pThread=AfxBeginThread(MyAdoConnect,hWnd,THREAD_PRIORITY_NORMAL);//启动线程THREAD_PRIORITY_HIGHEST

m_pThread->m_bAutoDelete=FALSE; //线程为手动删除

// 线程函数

UINT MyAdoConnect(LPVOID pParam)

{

// COM初始化

::CoInitialize(0);

_ConnectionPtr pConn;

HRESULT hr;

hr = pConn.CreateInstance(__uuidof(Connection));

if(SUCCEEDED(hr))

{

try

{

pConn->ConnectionString = "Provider=OraOLEDB.Oracle.1;Password=LMS;Persist Security Info=True;User ID=LMS;Data Source=oradb1";//设置连接字符串

pConn ->ConnectionTimeout = 10; //设置连接的超时时间,可选

pConn ->CursorLocation = adUseServer; //设置光标的位置,可选

pConn ->Open("","","",-1);

}

catch(_com_error& e)

{

CString StrErr;

StrErr.Format("出错,连接数据库错误~\n错误:%s",e.ErrorMessage());

AfxMessageBox(StrErr);

::PostMessage( (HWND)pParam,WM_CLOSE,0,0);

bpConn = false;

return FALSE;

}

}

theApp.SetConn(pConn);

::PostMessage( (HWND)pParam,WM_CLOSE,0,0);

bpConn = true;

return TRUE;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有