使用OTL连接数据库有感篇(一)

在使用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,认识比较浅,希望大神指点。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值