您的位置:首页 > 数据库 > Oracle

ADO远程连接ORACLE数据库服务器的方法总结及遇到的问题

2018-03-12 13:52 323 查看

两台样机要与服务器连接,并且采集到的数据也要存入服务器的数据库,搭建过程如下:

一、数据库迁移:

首先使用exp导出口令将我做好的数据库导出成dmp文件:exp 用户名/密码@ORCL rows=y indexes=y compress=n buffer=65536 feedback=100000 OWNER=用户名 file=H:/xxx.dmp log=H:/xxx.log

再在服务器上新建用户并授予相应的权限,使用imp口令导入数据库文件:imp 用户名/密码 file=H:/xxx.dmp log=H:/xxx_log.log fromuser=用户名

二、走局域网内部的搭建方式:

MFC程序采用了ADO接口与数据库连接,首先使用网线连接交换机,然后分配本地网络中的ip地址,使其与服务器处于同一个网段中;
样机本地使用oracle 11g客户端与服务器连接,下载安装32位的oracle客户端,安装完成后,配置添加网络服务名和监听,完成后使用ado连接助手测试是否可以连接成功,并获得连接字符串:Open(_bstr_t(_T("Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=otdruser;Data Source=192.168.0.8:1521/ORCL")), _bstr_t(_T("用户名")), _bstr_t(_T("密码")), adOpenUnspecified);
在程序中修改连接字符串,并编译成功后运行查看效果。

三、走公网的搭建方式:

      与走内网的区别仅在于连接字符串不一样而已:
   Open(_bstr_t(_T("Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=otdruser;Data Source=xxx.xxx.xxx.xxx:1521/ORCL")), _bstr_t(_T("用户名")), _bstr_t(_T("密码")), adOpenUnspecified)
      并且数据源的ip要写成服务器映射为公网之后的ip地址,否则无法连接。

四、遇到的问题

一开始部署的时候,因为oracle的驱动
4000
不了解,使用了微软的ole db provider for oracle 接口,导致程序一直无法连接数据库,实际上,oracle 11g的64位客户端存在问题,安装上64位的之后,添加数据源的列表中根本没有oracle provider for ole db ,不知为啥,打了补丁,使用ODAC仍然解决不了问题,最后无奈只好卸载了64位的重新装了32位的客户端和驱动,这才连接成功了。

PS:我有ado连接数据库的类库文件,可以直接加入项目中使
用,需要的可以给我留言(原创文章,转载请注明出处)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐