社区
数据库
帖子详情
Vc+ADO,如何远程连接Oracle数据库??,不需要DSN的方式
kilnut
2005-04-27 05:02:41
Vc+ADO,如何远程连接Oracle数据库??,不需要DSN的方式.
...全文
1165
19
打赏
收藏
Vc+ADO,如何远程连接Oracle数据库??,不需要DSN的方式
Vc+ADO,如何远程连接Oracle数据库??,不需要DSN的方式.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
柯本
2005-05-14
打赏
举报
回复
不装客户端VC我没试过
用BCB或DELPHI不装客户端,可用ODAC构件
我也用过将oracle的客户端部分打包,但只能用于ODBC或Microsoft OLE DB Provider for ORACLE
且不能用Data Source=\"(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.222)(PORT = 1521)) )(CONNECT_DATA = (SID = sci)))\"那样的方式,只能用SQL*NET建好的别名,且目录,路径都是固定的,还有文件过大(约8M,没法mail)
建议你每台客户机都安装ORACLE客户端
若要打包,你可把oracle的客户端整个打包到你的安装程序中,可能会大一些,但是是最简单有效的方法
kilnut
2005-05-14
打赏
举报
回复
自己顶一下
kilnut
2005-05-08
打赏
举报
回复
自己顶一下
kilnut
2005-05-07
打赏
举报
回复
to keiy() :
不装oracle客户端不行吗?我没有装的
那么,你能给我个将oracle客户端和的程序一起打包的例子吗?xrongwu@hotmail.com
柯本
2005-05-01
打赏
举报
回复
2,3都与VC无关,它都oracle的命令,要进入cmd方式,然后执行
(前提是,oracle客户端已安装,且PATH中含oracle的执行文件路径)
kilnut
2005-04-29
打赏
举报
回复
to keiy() :你所说的
“
2.用tnsping (ora 8i前为tnsping80)
tnsping "(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.115)(PORT = 1521))"
检查oracle的服务是否存在
3.用sqlplus
sqlplus username/password@"(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.115)(PORT = 1521)) )(CONNECT_DATA = (SID = ora8)))"
检查oracle的服务是否可以登录
”
是什么意思?是指m_sConn字符串重新构造吗??
柯本
2005-04-29
打赏
举报
回复
我试过,程序没问题
1.查com是否初始化
AfxOleInit( );
2.用tnsping (ora 8i前为tnsping80)
tnsping "(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.115)(PORT = 1521))"
检查oracle的服务是否存在
3.用sqlplus
sqlplus username/password@"(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.115)(PORT = 1521)) )(CONNECT_DATA = (SID = ora8)))"
检查oracle的服务是否可以登录
bohut
2005-04-28
打赏
举报
回复
_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;
}
kilnut
2005-04-28
打赏
举报
回复
以下是我的代码,从界面输入用户名称,密码,IP,数据库名称,结果连不上.是什么原因阿
void CTestOracleDlg::OnButton2()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CString strUID =m_strUID;
CString strPWD=m_strPW;
CString strDB=m_strDB;
BYTE nField0,nField1, nField2, nField3 ;
CString strIP;
m_IP.GetAddress(nField0,nField1,nField2,nField3 );
strIP.Format("%d.%d.%d.%d",nField0,nField1, nField2, nField3);
CString m_sConn;//="Provider=OraOLEDB.Oracle.1;Password=test;Persist Security Info=True;User ID=test;Data Source=\"(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.115)(PORT = 1521)) )(CONNECT_DATA = (SID = ora8)))\"";
m_sConn.Format("Provider=OraOLEDB.Oracle.1;Password=%s;Persist Security Info=True;User ID=%s;Data Source=\"(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = %s)(PORT = 1521)) )(CONNECT_DATA = (SID = %s)))\"",strPWD,strUID,strIP,strDB);
TRACE("%s\n",m_sConn);
_ConnectionPtr m_pConnection;
m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
m_pConnection->ConnectionTimeout = 8;
TRACE("%s\n",m_sConn);
try{
HRESULT hr= m_pConnection->Open(_bstr_t(LPCTSTR(m_sConn)),_bstr_t(LPCTSTR(strUID)),_bstr_t(LPCTSTR(strPWD)),adModeUnknown);///连接数据库
if (FAILED(hr))
{
AfxMessageBox("不能连接数据库!");
return ;
}
else
AfxMessageBox("连接数据库成功!");
}
catch(_com_error e)
{
AfxMessageBox("不能打开数据库!");
return ;
}
}
柯本
2005-04-28
打赏
举报
回复
http://community.csdn.net/Expert/topic/3960/3960591.xml?temp=.1609308
那里有一段代码,只要把Provider改一下就可
另外\不可以去掉,因为它是为了一对",在C中,字串中的"要加\
内存泄漏
2005-04-28
打赏
举报
回复
“\”这个东西你去掉也没有关系的。。
kilnut
2005-04-28
打赏
举报
回复
to keiy() :
能不能给我个代码段啊?因为连接方式很多,我确认Open其他参数怎么设。还有上面“Data Source=\”的“\”指数据库名称吗??
柯本
2005-04-28
打赏
举报
回复
我也试过bohut(伯虎)的方法,不能成功,出现ora-12154:TNS:could not resolve service name
内存泄漏
2005-04-28
打赏
举报
回复
keiy() 说的方法是正确的,这样写的话就不用在ORACLE客户端里面配置数据源也能访问数据库了。
kilnut
2005-04-28
打赏
举报
回复
to bohut(伯虎):
请问sode为SID是什么?数据库名称?我以下是否可以?另外如果远程连接是SQL Server2000的
话,有什么需要改动?一并问你了,谢谢
strDatabase="sode_192.168.3.9";
//构造连接字符串
strConnect = _T("Provider=MSDAORA.1;Data Source=")+strDatabase+(";UID=")+strUID+(";PWD=") + strPWD;
g_pRConnection.CreateInstance(__uuidof(Connection));
g_pRConnection->ConnectionTimeout = 8;
g_pRConnection->Open(_bstr_t(LPCTSTR(strConnect)),"","",adModeUnknown);
柯本
2005-04-28
打赏
举报
回复
这样的连接串可以,我试用通过:
CString m_sConn="Provider=OraOLEDB.Oracle.1;Password=test;Persist Security Info=True;User ID=test;Data Source=\"(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.115)(PORT = 1521)) )(CONNECT_DATA = (SID = ora8)))\"";
meteor108
2005-04-28
打赏
举报
回复
BOOL CDataTrans2Dlg::SetADOEnv()
{
CString szLocalConn="Provider=MSDAORA.1;User ID=user_name;Password=user_pass;Data Source=database_name";
pConnection=0;
pConnection.CreateInstance("ADODB.Connection");
//pConnection->ConnectionTimeout = 10;
DispLog("connect oracle...");
try
{
HRESULT hr = pConnection->Open((_bstr_t)szLocalConn, "", "", adConnectUnspecified);
if (FAILED(hr))
{
DispLog("connect failed...");
return FALSE;
}
}
catch(_com_error e)
{
CString temp;
temp.Format("connect failed:%s", e.ErrorMessage());
DispLog(temp);
return false;
}
//GetDlgItem(IDC_CLEAR)->EnableWindow(TRUE);
DispLog("connect successful...");
return true;
}
oyljerry
2005-04-28
打赏
举报
回复
就是连接字符串中Provider用MSDAORA
vc
用
ado
访问
Oracle
数据库
的代码示例 .rar_
VC
ORACLE
_
VC
++
ado
Oracle
_
ado
ora
在
VC
++环境中,使用
ADO
(ActiveX Data Objects)访问
Oracle
数据库
是一种常见的方法,因为
ADO
提供了一种简单且高效的
方式
与各种
数据库
进行交互。本示例将深入探讨如何在
VC
++项目中利用
ADO
连接并操作
Oracle
数据库
。 ...
VC
_中连接
Oracle
数据库
的几种方法
###
VC
_中连接
Oracle
数据库
的几种方法 #### 引言 随着信息技术的不断发展,
数据库
管理系统在各类信息系统中的地位越来越重要。
Oracle
数据库
作为一种广泛使用的
数据库
系统,以其强大的功能、优秀的性能及高安全性...
vc
++与
Oracle
在IT领域,
数据库
管理和开发是不可或缺的部分,而
Oracle
作为一款广泛应用的关系型
数据库
管理系统,常常与各种编程语言结合,实现数据的存储、查询和处理。在这个主题中,我们重点关注的是使用Visual C++(简称
VC
++)...
VC
操作
oracle
数据的例子程序
通过这个"
VC
操作
oracle
数据的例子程序",开发者可以学习到如何在
VC
环境中创建
数据库
连接,编写SQL语句,处理结果集,并有效地管理
数据库
事务。此外,此程序还可能包含了异常处理和性能优化的策略,这些都是实际开发...
数据库
在
vc
中用
ado
连接
oracle
的几种方法
###
数据库
在
VC
中使用
ADO
连接
Oracle
的几种方法 #### 一、准备工作 在使用
ADO
技术连接
Oracle
数据库
之前,
需要
进行一系列的准备工作。 ##### 1. 引入
ADO
类型库 为了能够在Visual C++中使用
ADO
,
需要
首先通过`#...
数据库
4,018
社区成员
39,807
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章