远程连接oracle问题,应该很简单,但很急!请大家多帮忙,谢谢先!解决者百分送上,顶者有分!

无聊客 2004-12-01 10:55:13
我想远程连接ORACLE数据库,本机已经安装了ORACLE客户端,如何设置连接串使我不用手动输入服务器地址?下面的代码能够连接,但是每次连接前总会弹出个对话框让我输入服务器.(比如服务器为CHEN_10.0.0.172)

CDatabase database;
CString sDsn;
sDsn = "ODBC;DRIVER={Microsoft ODBC for Oracle};UID=CHEN;PWD=123456";
database.Open(NULL, false, false, sDsn);

另外想问各位大虾,不装ORACLE是否也可以远程连接ORACLE数据库?谢谢先!
...全文
251 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kudeet 2004-12-06
  • 打赏
  • 举报
回复
以下的方法在客户端装了oracle客户端的情况下测试成功
_ConnectionPtr pConnection;
pConnection.CreateInstance(ADODB.Connection);
pConnection->Open("Provider=MSDAORA;Data Source=test;User ID=zh;Password=zh","","",adModeUnknown);

http://www.codeproject.com/useritems/ConnectionStrings.asp
gooyan 2004-12-04
  • 打赏
  • 举报
回复
_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;
}




===>Oracle Connect String

微软提供的Oracle标准连接是:

strConnect = _T("Provider=MSDAORA;Data Source=serverName;User ID=userName; Password=userPassword;");

Oracle公司提供的连接方式:

使用标准安全级别:

strConnect = _T("Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;");

使用信任连接

1.strConnect = _T("Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=/;Password=;"); UID为'/'

2.strConnect = _T("Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;");使用OSAuthent=1

对于连接字符串可以参考以下网页: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdreforacleprovspec.asp?frame=true

http://download-west.oracle.com/otndoc/oracle9i/901_doc/win.901/a90171/using.htm
无聊客 2004-12-04
  • 打赏
  • 举报
回复
看来真的只有装客户端了?
hjunxu 2004-12-03
  • 打赏
  • 举报
回复
你客户端的本地连接创建好了吧?
jijinxu 2004-12-03
  • 打赏
  • 举报
回复
我也听说不装能连,但只是听说,我前段时间做一个项目,本来也想不装客户端就直接用代码连接服务器端的oracle数据库的,为此也找了一段时间的资料。。。不过最后我也没找到能解决问题的方法,最后我还是装了客户端,呵呵
无聊客 2004-12-03
  • 打赏
  • 举报
回复
再顶
fengqinggao 2004-12-02
  • 打赏
  • 举报
回复
呵呵,因为昨晚回帖时比较晚了,有些晕乎,刚才重新看了一下,应该还加上服务器的名称设置,即:

sDsn = "ODBC;DRIVER={Microsoft ODBC for Oracle};Server=sYourServerName;Database=sYourDBName;UID=CHEN;PWD=123456";

这样服务器、数据库就全了,远程的也没有问题;^_^
oyljerry 2004-12-02
  • 打赏
  • 举报
回复
设置好数据库服务器的地址
无聊客 2004-12-02
  • 打赏
  • 举报
回复
谢谢楼上的,我回去试试。
无聊客 2004-12-02
  • 打赏
  • 举报
回复
顶下下
无聊客 2004-12-02
  • 打赏
  • 举报
回复
我想用ODBC连,因为代码都写的差不多了,我想问下,不装ORACLE客户端也能连吗?以前的帖子好象说必须要装,请各位大虾多多指教。
taianmonkey 2004-12-02
  • 打赏
  • 举报
回复
ServerString="Provider=OraOLEDB.Oracle;Data Source=qq;user id=qq;password=qq";

//连接Oracle服务器数据库//
try
{
HRESULT hr = m_pConnectionOracle.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
m_pConnectionOracle->Open(_bstr_t(ServerString),"","",adModeUnknown);
}
}
catch(_com_error e)
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n:%s",e.ErrorMessage());
AfxMessageBox(errormessage);
return 0;
}
fengqinggao 2004-12-02
  • 打赏
  • 举报
回复
上面这种方法读的应该是本地已经设置好了的数据库,如果本地没有数据库,直接读服务器上的,则需要加上服务器地址,当然,这个我没有测试过,不过应该可以

另:按你的方法,它应该不止找你要服务器地址啊,还要找你要数据库名才对,不知道事实是否如此
fengqinggao 2004-12-02
  • 打赏
  • 举报
回复
你没有输入服务器名称,它当然要找你要了,呵呵

在你的sDsn中,增加Database=sYourDBName,和其他部分一样,用“;”隔开,即:
sDsn = "ODBC;DRIVER={Microsoft ODBC for Oracle};Database=sYourDBName;UID=CHEN;PWD=123456";

这样应该就可以了
bohut 2004-12-02
  • 打赏
  • 举报
回复
ado连接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;
IloveAzhu 2004-12-02
  • 打赏
  • 举报
回复
顶者有分!
UDX协议 2004-12-02
  • 打赏
  • 举报
回复
//m_pConn->Open(L"Provider=OraOLEDB.Oracle.1;User ID=pkuwh_za;Password=a;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.213)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME = ZAGL)));Persist Security Info=False",L"",L"",adOpenUnspecified);
chinaseven 2004-12-02
  • 打赏
  • 举报
回复
CDatabase g_MJDatabase;
CString strODBC;
g_MJDatabase.SetLoginTimeout(90);
strODBC.Format("DSN=%s;UID=%s;PWD=%s", "DSN_NAME", "UID", "PWD");
try
{
if(!g_MJDatabase.OpenEx(strODBC, CDatabase::noOdbcDialog))
{
::MessageBox(NULL,"连接数据库失败!","ERROR",MB_OK);
}
}
catch(CDBException *e)
{
TRACE(e->m_strError.GetBuffer(0));
::MessageBox(NULL,"连接数据库失败!","ERROR",MB_OK);
}
nastar 2004-12-01
  • 打赏
  • 举报
回复
不装也可以连的

4,011

社区成员

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

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