本文通过ODBC方式连接Oracle数据库,使用MFC进行数据库操作的关键函数。详细介绍了配置ODBC的方法和其中遇到的各项困难,以及最终几个的关键函数。
1. ODBC数据源连接数据库方式
1.1 使用odbc数据源的好处
- 客户端无需知道数据库所在的IP地址。只要在数据库中配置好监听,客户端配置好文件tnsnames.ora。客户端电脑中的程序即可通过数据源直接访问Orcale数据库口程序的开发人员只需调用ODBC相关的函数即可实现通信。
- 在系统中直接配置监听TNS、用户名UID、密码PSW,可以避免数据库密码等信息维护,客户端电脑上接口程序的修改,程序开发人员也不需要知道密码。
- 一个数据库可以配置多个ns。
1.2 客户端安装orcale的驱动
为了方便,我们将Oracle数据库所在电脑称作服务器,将配置ODBC的电脑称作客户端。需要注意的是只有客户端需要在windows系统中配置odbc数据源,服务器只需要在Oracle数据库内部配置好监听即可,不需要配置odbc数据源。现在假设Oracle数据库服务器配置的服务命名为orcl,如下图所示。
首先要明确Oracle_ODBC驱动有32位和64位之分。理论上讲,客户端电脑安装的的驱动一定要和服务器安装的Orcale数据库的位数一致。如果不一致会出现 “在指定的DSN中,驱动程序和应用程序之间的体系结构不匹配” 的问题。
Microsoft 会默认自带一个 32位Oracle ODBC的ODBC驱动文件,但是我们在这个驱动文件上创建数据源的话会报错 一般会提示 “未发现Oracle™客户端和网络组件。”的错误。我们需要这样的情况下我们要重新下载安装手动配置32位ODBC数据驱动。
- (1) 首先把我提供的instantclient_12_1 (Orcale_ODBC驱动)文件放在 C:\ProgramFiles 目录下。
- (2) 用记事本打开“C:\ProgramFiles\instantclient_12_1\network\ADMIN\tnsnames.ora”文件将主机名"HOST"填写你要连接的IP地址(这条是针对客户端的电脑,服务器侧的电脑不用动),其它不用动。
- (3) 添加环境变量(右键单击我的电脑—属性—高级选项卡—环境变量)TNS_ADMIN,变量值指向ADMIN目录,我的配置是c:\Program Files\instantclient_12_1\NETWORK\ADMIN;新建的变量名填写TNS_ADMI