远程连接oracle问题,应该很简单,但很急!请大家多帮忙,谢谢先!解决者百分送上,顶者有分!
我想远程连接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数据库?谢谢先!
问题点数:200、回复次数:19Top
1 楼nastar(阿门)回复于 2004-12-01 22:58:29 得分 10
不装也可以连的
Top
2 楼fengqinggao(风清高)回复于 2004-12-02 02:01:58 得分 100
你没有输入服务器名称,它当然要找你要了,呵呵
在你的sDsn中,增加Database=sYourDBName,和其他部分一样,用“;”隔开,即:
sDsn = "ODBC;DRIVER={Microsoft ODBC for Oracle};Database=sYourDBName;UID=CHEN;PWD=123456";
这样应该就可以了Top
3 楼fengqinggao(风清高)回复于 2004-12-02 02:04:49 得分 0
上面这种方法读的应该是本地已经设置好了的数据库,如果本地没有数据库,直接读服务器上的,则需要加上服务器地址,当然,这个我没有测试过,不过应该可以
另:按你的方法,它应该不止找你要服务器地址啊,还要找你要数据库名才对,不知道事实是否如此Top
4 楼yzx0023(无聊客)回复于 2004-12-02 12:33:46 得分 0
谢谢楼上的,我回去试试。Top
5 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2004-12-02 12:47:37 得分 10
设置好数据库服务器的地址Top
6 楼fengqinggao(风清高)回复于 2004-12-02 12:57:43 得分 0
呵呵,因为昨晚回帖时比较晚了,有些晕乎,刚才重新看了一下,应该还加上服务器的名称设置,即:
sDsn = "ODBC;DRIVER={Microsoft ODBC for Oracle};Server=sYourServerName;Database=sYourDBName;UID=CHEN;PWD=123456";
这样服务器、数据库就全了,远程的也没有问题;^_^Top
7 楼chinaseven(天下第七)回复于 2004-12-02 13:02:01 得分 10
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);
}Top
8 楼wwwllg(野蛮人)回复于 2004-12-02 13:22:51 得分 10
//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);
Top
9 楼IloveAzhu(AJUN)回复于 2004-12-02 13:26:56 得分 5
顶者有分!Top
10 楼bohut(●伯虎● )回复于 2004-12-02 14:00:31 得分 10
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;
Top
11 楼taianmonkey()回复于 2004-12-02 14:05:35 得分 10
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;
}Top
12 楼yzx0023(无聊客)回复于 2004-12-02 17:28:16 得分 0
我想用ODBC连,因为代码都写的差不多了,我想问下,不装ORACLE客户端也能连吗?以前的帖子好象说必须要装,请各位大虾多多指教。Top
13 楼yzx0023(无聊客)回复于 2004-12-02 21:00:04 得分 0
顶下下Top
14 楼yzx0023(无聊客)回复于 2004-12-03 13:12:26 得分 0
再顶Top
15 楼jijinxu()回复于 2004-12-03 13:20:27 得分 10
我也听说不装能连,但只是听说,我前段时间做一个项目,本来也想不装客户端就直接用代码连接服务器端的oracle数据库的,为此也找了一段时间的资料。。。不过最后我也没找到能解决问题的方法,最后我还是装了客户端,呵呵Top
16 楼hjunxu(hjun)回复于 2004-12-03 13:23:03 得分 5
你客户端的本地连接创建好了吧?
Top
17 楼yzx0023(无聊客)回复于 2004-12-04 17:53:26 得分 0
看来真的只有装客户端了?Top
18 楼gooyan(超级替补)回复于 2004-12-04 18:15:07 得分 10
_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
Top
19 楼laiyiling(陌生人[MVP])回复于 2004-12-06 07:15:55 得分 10
以下的方法在客户端装了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.aspTop




