如何用MFC编程让一台oracle客户端连接oracle服务器
我在oracle客户端中能用Net Configuration Assistant正常的连接到oracle服务器---代表oracle客户端的机子和oracle服务器的机子可以连通
我写的程序就联不通了。关键代码:在.h声明_ConnectionPtr m_pConnection;//连接对象指针
在app的函数InitInstance()中
//初始化COM
if(!AfxOleInit())//这就是初始化COM库
{
AfxMessageBox("OLE初始化出错!");
return FALSE;
}
CoInitialize(NULL);
try//连接数据库
{
m_pConnection.CreateInstance(__uuidof(Connection)); strConnectString.Format(_T("Provider=%s;User ID=bt;Persist Security Info=true;Password=bt123456;Data Source=%s;"),strProvider,strSource); HRESULT retS=m_pConnection->Open((_bstr_t)(strConnectStringm,"","",adModeUnknown);
if(SUCCEEDED(retS))
AfxMessageBox(TEXT("数据库open成功!"));
else
AfxMessageBox(TEXT("数据库open失败!"));
}
catch(_com_error e)
{
AfxMessageBox(TEXT("数据库连接出错,捕获异常!"));
AfxMessageBox(e.Description());
return FALSE;
}
这段代码在我本地机子上(也就是服务器的机子上)能 正常的连接oracle数据库
但是在oracle客户端上就不能连接到oracle数据库
麻烦大伙帮帮忙,谢谢!!
我在oracle客户端中能用Net Configuration Assistant正常的连接到oracle服务器---代表oracle客户端的机子和oracle服务器的机子可以连通
我写的程序就联不通了。关键代码:在.h声明_ConnectionPtr m_pConnection;//连接对象指针
在app的函数InitInstance()中
//初始化COM
if(!AfxOleInit())//这就是初始化COM库
{
AfxMessageBox("OLE初始化出错!");
return FALSE;
}
CoInitialize(NULL);
try//连接数据库
{
m_pConnection.CreateInstance(__uuidof(Connection)); strConnectString.Format(_T("Provider=%s;User ID=bt;Persist Security Info=true;Password=bt123456;Data Source=%s;"),strProvider,strSource); HRESULT retS=m_pConnection->Open((_bstr_t)(strConnectStringm,"","",adModeUnknown);
if(SUCCEEDED(retS))
AfxMessageBox(TEXT("数据库open成功!"));
else
AfxMessageBox(TEXT("数据库open失败!"));
}
catch(_com_error e)
{
AfxMessageBox(TEXT("数据库连接出错,捕获异常!"));
AfxMessageBox(e.Description());
return FALSE;
}
这段代码在我本地机子上(也就是服务器的机子上)能 正常的连接oracle数据库
但是在oracle客户端上就不能连接到oracle数据库
麻烦大伙帮帮忙,谢谢!!
HRESULT hr = S_OK;
try
{
CString sql;
sql.Format("Update name set table='%s'", tip);
_ConnectionPtr pConnection;
_CommandPtr pCommand;
_RecordsetPtr pRst_Res;
pConnection.CreateInstance( __uuidof( Connection ) );
if(SUCCEEDED(hr))
{
hr = pConnection->Open( (_bstr_t)"Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=DBHJFI;Data Source=127.0.0.1","","",adModeUnknown );
if(SUCCEEDED(hr))
{
hr = pCommand.CreateInstance( __uuidof( Command ) );
if(SUCCEEDED(hr))
{
pCommand->ActiveConnection = pConnection;
hr = pRst_Res.CreateInstance( __uuidof( Recordset ) );
if(SUCCEEDED(hr))
{
BOOL isCoonected = pRst_Res->Open((_bstr_t)sql,pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText); }
}
}
} }
catch (CMemoryException* e)
{ }
catch (CFileException* e)
{
}
catch (CException* e)
{
}
catch (...)
{ }
而你的这个连接串
hr = pConnection->Open( (_bstr_t)"Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=DBHJFI;Data Source=127.0.0.1","","",adModeUnknown );
是和sqlserver进行连接的我把这个相应的改成
hr = pConnection->Open("Provider=OraOLEDB.Oracle.1;Password=bt123456;User ID=bt;Data Source=127.0.0.1;Persist Security Info=false","","",NULL);
也是连接不上我的oracle服务器啊
求指导!!