ADO访问Oracle数据库问题(答出来就结帖)

hxzb7215191 2004-03-24 04:19:02
使用ADO访问数据库的时候。

我用的是

try
{
m_Conn.CreateInstance(__uuidof(Connection));
_bstr_t conn="Provider=MSDAORA.1;Data Source=test;User ID=test; Password=test";

m_Conn->Open(conn,"","",0);
}
catch (_com_error e)
{
AfxMessageBox(e.ErrorMessage());
m_Conn=NULL;
m_Rec=NULL;
return;
}

可是老出错。

好像是这个东东写错了。

Provider=MSDAORA.1;

你们一般用的是什么呢?
...全文
74 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
nemember 2004-03-30
  • 打赏
  • 举报
回复
在CXXX::InitInstance()再加上
AfxEnableControlContainer();

// Create ADO Connection
if( FAILED(::CoInitialize(NULL)) )
{
AfxMessageBox("ADO Init failed");
return false;
}
再试试吧
runall 2004-03-30
  • 打赏
  • 举报
回复
是不是没有装Oracle客户端呀
taianmonkey 2004-03-25
  • 打赏
  • 举报
回复
1.ACCESS 2000

_ConnectionPtr m_pConn;
CString m_sConn="Provider=Microsoft.Jet.OLEDB.4.0.1;Data Source=d:\\db1.mdb";
m_pConn.CreateInstance("ADODB.Connection");
try
{
HRESULT hr=m_pConn->Open((_bstr_t)m_sConn,"","",adConnectUnspecified);
if (FAILED(hr))
{
AfxMessageBox("不能连接数据库 source!");
return FALSE;
}
}
catch(_com_error e)
{
AfxMessageBox("不能连接数据库 error!");
return FALSE;
}

2.SQL Server 2000

_ConnectionPtr m_pConn;
CString m_sConn="Provider=SQLOLEDB.1;Data Source=192.168.3.9;Initial
Catalog=sode"; //sode是数据库服务器192.168.3.9上的一个数据库
m_pConn.CreateInstance("ADODB.Connection");
try
{
HRESULT hr=m_pConn->Open((_bstr_t)m_sConn,"sa","mapper",adConnectUnspecified);
if (FAILED(hr))
{
AfxMessageBox("不能连接数据库 source!");
return FALSE;
}
}
catch(_com_error e)
{
AfxMessageBox("不能连接数据库 error!");
return FALSE;
}

3.Oracle 9i

_ConnectionPtr m_pConn;
CString m_sConn="Provider=MSDAORA.1;Data Source=sode_192.168.3.9"; //使用
ms连接库,sode为SID,192.168.3.9为机器ip
m_pConn.CreateInstance("ADODB.Connection");
try
{
HRESULT hr=m_pConn->Open((_bstr_t)m_sConn,"sodeUser","sodePw",adConnectUnspecified);
if (FAILED(hr))
{
AfxMessageBox("不能连接数据库 source!");
return FALSE;
}
}
catch(_com_error e)
{
AfxMessageBox("不能打开数据库 error!");
return FALSE;
}
hjunxu 2004-03-24
  • 打赏
  • 举报
回复
如果系统环境不对有可能Microsoft的Provider不行,可以改用ORACLE的Provider=oraoledb.oracle
crystal_heart 2004-03-24
  • 打赏
  • 举报
回复
up
windyhui 2004-03-24
  • 打赏
  • 举报
回复
是不是没有初始化COM环境?
windyhui 2004-03-24
  • 打赏
  • 举报
回复
是肖赞彪吗?
DebugXP 2004-03-24
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=5949
hxzb7215191 2004-03-24
  • 打赏
  • 举报
回复
不行。

还是出错。

Unknow error 0x800A0E7A
nemember 2004-03-24
  • 打赏
  • 举报
回复
偶是这样用的
try
{
ADOConn.CreateInstance(__uuidof(Connection));
if(ADOConn->GetState()==adStateClosed)
ADOConn->Open("Provider=OraOLEDB.Oracle;Data Source=database;user id=scott;password=tiger","","",adConnectUnspecified);
}
// Catch Exceptions
catch(_com_error &e)
{
CString err;
err.Format("%s", (char*)(e.Description()) );
AfxMessageBox(err);
}
catch(...)
{
AfxMessageBox("Unknown Error...连接数据库失败!");

}
wyjtnt 2004-03-24
  • 打赏
  • 举报
回复
用这个吧,久经考验的函数!
BOOL CAdoConnection::ConnectOracleServer(CString dbsrc, CString user, CString pass)
{
CString strConnect = _T("Provider=OraOLEDB.Oracle.1; Data Source=") + dbsrc +
_T("; User ID=") + user +
_T("; Password=") + pass;

long lOptions = adConnectUnspecified;
return Open(LPCTSTR(strConnect), lOptions);

}
xuanzg 2004-03-24
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataoracleclientoracleconnectionclasstopic.asp
phiger 2004-03-24
  • 打赏
  • 举报
回复
我一般直接写Provider=MSDAORA
"Provider=MSDAORA;Data Source=serverName;User ID=userName; Password=userPassword;"

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧