我现在是想在 Oracle中建库,用组件连接。我用SQL Server的可以连接上,用Oracle 的就连接不上,请教高手送分如下,我在 ODBC中建了两个数据源
一个是:SQLServer的 DSN=MsSql ;User ID=sa
另一个是: Oracle 的 DSN =BXZJJ ; User ID=bxzjj;PWD = bxzjj
//**************************************************************
//创建并打开一个ADO连接
//输入:ppadoConection Ado Connection 对象指针的指针
//输出:如果创建且打开Ado connection 成功,则返回该指针
//返回: HRESULT类型 S_OK 成功,E_FAIL 失败
//**************************************************************
HRESULT OpenConnection(LPDISPATCH* ppadoConnection_out)
{
HRESULT hr;
BSTR bstrDSN;
_ConnectionPtr padoConnection;
WCHAR wszDSNBuffer[50]; hr = padoConnection.CreateInstance(__uuidof(Connection));
if (FAILED(hr))
return hr; if (FAILED(hr = padoConnection->put_CursorLocation(adUseClient)))
return hr; //use Kagera
memset((void*)wszDSNBuffer,0,sizeof(wszDSNBuffer)); //swprintf(wszDSNBuffer,L"DSN=MSSQL;UID=sa;PWD="); /*用SQLServer*/
swprintf(wszDSNBuffer,L"DSN=YLBXZJJ;UID=ylbxzjj;PWD=ylbxzjj");/*用Oracle*/
bstrDSN = ::SysAllocString(wszDSNBuffer); //hr = padoConnection->Open("MSSQL","sa","",-1); /*用SQLServer*/
hr = padoConnection->Open("YLBXZJJ","ylbxzjj","ylbxzjj",-1); ");/*用Oracle*/ ::SysFreeString( bstrDSN );
if (FAILED(hr))
return hr; padoConnection->QueryInterface(IID_IDispatch,(void **)ppadoConnection_out); return S_OK;
}
一个是:SQLServer的 DSN=MsSql ;User ID=sa
另一个是: Oracle 的 DSN =BXZJJ ; User ID=bxzjj;PWD = bxzjj
//**************************************************************
//创建并打开一个ADO连接
//输入:ppadoConection Ado Connection 对象指针的指针
//输出:如果创建且打开Ado connection 成功,则返回该指针
//返回: HRESULT类型 S_OK 成功,E_FAIL 失败
//**************************************************************
HRESULT OpenConnection(LPDISPATCH* ppadoConnection_out)
{
HRESULT hr;
BSTR bstrDSN;
_ConnectionPtr padoConnection;
WCHAR wszDSNBuffer[50]; hr = padoConnection.CreateInstance(__uuidof(Connection));
if (FAILED(hr))
return hr; if (FAILED(hr = padoConnection->put_CursorLocation(adUseClient)))
return hr; //use Kagera
memset((void*)wszDSNBuffer,0,sizeof(wszDSNBuffer)); //swprintf(wszDSNBuffer,L"DSN=MSSQL;UID=sa;PWD="); /*用SQLServer*/
swprintf(wszDSNBuffer,L"DSN=YLBXZJJ;UID=ylbxzjj;PWD=ylbxzjj");/*用Oracle*/
bstrDSN = ::SysAllocString(wszDSNBuffer); //hr = padoConnection->Open("MSSQL","sa","",-1); /*用SQLServer*/
hr = padoConnection->Open("YLBXZJJ","ylbxzjj","ylbxzjj",-1); ");/*用Oracle*/ ::SysFreeString( bstrDSN );
if (FAILED(hr))
return hr; padoConnection->QueryInterface(IID_IDispatch,(void **)ppadoConnection_out); return S_OK;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货