在使用C++连接数据库的时候,你可以选择ODBC或者ADO等方式,但是OTL连接数据库确实挺方便的,它所有的代码都放在一个头文件otlv4.h中,我们在写程序的时候直接将头文件包含进来,就可以调用其中的类中的函数进行数据库的连接,增删改查等操作。最近一直在使用Oracle数据库,这次就使用OTL连接Oracle数据库,Oracle数据库提供一个调用的接口(OCI),是Oracle公司开发的一个应用程序开发工具,是一个通过访问Oracle数据库的服务器,控制各类sql语句的执行,进而创建应用程序接口(API),OTL就是通过OCI对Oracle数据库进行操作。

下面就是我写过的一个实际例子,比较简单,只是为了登录数据库,并不进行其他操作,主要目的是学会使用OTL:

1.  所需文件:

首先我们应该从网上下载OTL的源码也就是   otlv4.h  这个头文件。

然后打开Oracle的安装目录E:\product\11.2.0\dbhome_1\OCI   找到oci文件夹将整个文件夹拷贝出来,文件夹中包含include文件夹和lib文件夹。

2.示例:

打开VS2008创建一个MFC工程,名称为mfc_one. (其它的就不多说了,这个都很清楚),然后打开工程目录,将OCI这个文件夹直接拷贝到工程目录下,在工程目录下新建一个文件夹OTL,将otlv4.h这个头文件放进这个文件夹中。

接下来就是配置项目属性,将文件包含进来,在mfc_oneDlg.h和mfc_oneDlg.cpp中都需要将otlv4.h这个头文件包含进去 (#include"otlv4.h").

然后在  项目->项目属性->c/c++->常规中附加包含目录,如下图所示:

$(SolutionDir)  是VS中的宏定义,表示的就是当前的工程目录。

然后在项目->项目属性->连接器->常规  中添加附加库目录,如下图所示:

在 项目->项目属性->连接器->输入  选项中配置  附加依赖项如下图所示:

上面这些配置 都是为了包含OCI,创建OCI环境。

下面就是链接数据库的一个例子:

void Cmfc_oneDlg::OnBnClickedButton1()
{// TODO: 在此添加控件通知处理程序代码// 数据库连接UpdateData(TRUE);sConnect.Format("%s/%s@%s",m_DBUser,m_DBPassword,m_DBObject);try{m_db.rlogon("sConnect.GetBuffer()"); // connect to Oracle}catch (otl_exception& p)    {    TRACE(_T("Oracle connecterror(msg:%s, stm_text: %s, sqlstate: %s, var_info: %s)"), p.msg, p.stm_text, p.sqlstate, p.var_info);    }
}

完成这些以后,需要说明一下,连接字符串的格式,一般是    “用户名/密码@TNS”

和实用工具连接oracle数据库一样,同样需要配置tnsnames.ora文件,这个文件 使用oracle数据库的都不会陌生下面是我的该文件配置:

# tnsnames.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.LISTENER_ORCL =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))ORACLR_CONNECTION_DATA =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)))(CONNECT_DATA =(SID = CLRExtProc)(PRESENTATION = RO)))ORCL =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))

编译好程序之后  需要将oci.dll和可执行文件放在一起,不然程序会报错,

配置好环境,其他操作就可以自己参照源码中的格式自己操作,现在网也有好多OTL的示例,有兴趣的话可以参考一下,我也是刚接触OTL,认识比较浅,希望大神指点。

使用OTL连接数据库有感篇(一)相关推荐

  1. linux otl oracle,linux otl 连接数据库

    otl接口实现和编译过程中,由于对宏定义什么的不太懂,所以花费了较长的时间,这只是简单实现otl与数据库连接但没有任何操作的例子,记下,回头忘了可以来看下. 首先在linux环境命令下输入命令:> ...

  2. 使用OTL操作Oracle数据库

    OTL是一个轻量级的数据库操作工具:可以访问多种数据库(oracle,db2,mysql, sql server等等),但是它只能用于c++. 基本使用 OTL的一般使用步骤包括: (1)   使用宏 ...

  3. 程序员成长之路(四)之有用的网址

    2019独角兽企业重金招聘Python工程师标准>>> 通过Java来测试JSON和Protocol Buffer的传输文件大小 http://www.jb51.net/articl ...

  4. openGauss数据库源码解析系列文章——openGauss开发快速入门(二)

    在上一篇openGauss数据库源码解析系列文章--openGauss开发快速入门(上)中,我们介绍了openGauss的安装部署方法,本篇将具体介绍openGauss基本使用. 二. openGau ...

  5. nodejs Koa框架及常用中间件

    目录 前言:了解nodejs 1.nodejs简介 2.nodejs安装 3.检验是否安装成功 4.npm介绍以及使用 ①.koa基础 1.koa创建简单实例 2.koa中间件 ②.koa中常用的第三 ...

  6. 读Google三篇论文有感

    读Google三篇论文有感 在这一个星期内,我认真读了谷歌的三篇重要论文,下面是我的读后感.这三篇论文分别是Google FS.MapReduce.Bigtable.Google没有公布这三个产品的源 ...

  7. eplise怎么连接数据库_Eclipse连接MySQL数据库(傻瓜篇)

    我的环境:MySQL:mysql-essential-5.1.51-win32 Eclipse:任意版本,免费的,可以百度的到. 下面来创建一个数据: mysql>CREATE DATABASE ...

  8. java mssql jdbc_从零开始学JAVA(05)-连接数据库MSSQL(JDBC代码篇)

    MSSQL的JDBC驱动下载好以后就可以写代码了. 1.新建项目,项目名为SqlJdbc.新建类,类名为SqlTest,同时勾选public static void main(String[] arg ...

  9. 100篇原创博文有感

    从2004年注册开始写博文,8年了,才写了100篇原创博文,实在是有点惭愧! 一直以来,很想写点什么,但又不知道要写点什么.于是乎,就什么也没写. 自从碰到Ext JS,忽然就觉得是时候写点东西了,于 ...

  10. jdbc连接mysql正规方法_JDBC基础篇(MYSQL)——通过JDBC连接数据库的三种方式

    package day01_jdbc; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManage ...

最新文章

  1. dnf跨一服务器修复,DNF跨区服务器炸裂:一阶段史诗回档,官方补偿何在
  2. python俄罗斯方块代码34行_少儿编程分享:码趣君教你用Python编写俄罗斯方块(四)...
  3. 积累一点小Sql 表的纵横互转玩玩看
  4. 中的实践 中兴_中兴通讯王卫斌:一步到位 构建5G 2B新商业
  5. Postman Forbidden (CSRF token missing or incorrect.)
  6. 程序员都在用的IDEA插件(不断更新)
  7. django admin下拉列表不显示值,显示为object的处理
  8. java实现物体下落效果_手撸一个物体下落的控件,实现雪花飘落效果
  9. 学游戏设计要什么学历_学平面设计有学历限制吗?
  10. 23. PHP include and require 文件
  11. 电商平台环境下的图像分析在线服务产品——电商图像分析
  12. i2c-tools安装与使用总结
  13. 影视导航资源库api php,影视资源采集站
  14. php如何生成伪静态url,Thinkphp里关于U函数生成URL伪静态
  15. UE4项目的命名规则
  16. 判断一个时间点是否在一个时间段的方法
  17. canonical的概念用途及用法详细解说,seo不可不看!
  18. 使用画图工具draw.io的嵌入模式实现uml图绘制功能的尝试(1)
  19. 帆软决策系统后台中左上角的这个logo和名字如何修改?
  20. 由Intel和Microsoft双双落马所想到的

热门文章

  1. 群晖 上传 源文件不存在_群晖NAS配多大容量硬盘合适?
  2. v3 微信api 请求微信_GitHub - helibin/wechatpay-postman-script: 微信支付API v3的调试工具...
  3. java怎么设置颜色_java怎么设置颜色
  4. mysql将日期转换年份_mysql将日期转换为当前年份的相同日期
  5. LOJ #6268. 分拆数
  6. 移动端rem布局实践
  7. POJ 3641 Pseudoprime numbers (miller-rabin 素数判定)
  8. sql server需要存储1000万条数据该怎么办?
  9. Xampp的apache无法启动时的解决办法
  10. 解除webservice上下传文件大小限制