简介
OTL 是 Oracle, Odbc and DB2-CLI TemplateLibrary 的缩写,是一个操控关系数据库的C++模板库,所以这里主要是用ODBC的方式连接mysql.开放数据库连接(Open Database Connectivity,ODBC)是为解决异构数据库间的数据共享而产生的,现已成为WOSA(The Windows Open System Architecture(Windows开放系统体系结构))的主要部分和基于Windows环境的一种数据库访问接口标准ODBC 为异构数据库访问提供统一接口,允许应用程序以SQL 为数据存取标准,存取不同DBMS管理的数据;使应用程序直接操纵DB中的数据,免除随DB的改变而改变。用ODBC 可以访问各类计算机上的DB文件,甚至访问如Excel 表和ASCI I数据文件这类非数据库对象。
当OTL用于oracle数据库时可以通过oracle数据库提供的接口;当OTL用于非oracle数据库时,OTL提供了odbc接口(oracle数据库也提供),所以使用OTL来控制非oracle数据库均需先安装对应数据库的odbc驱动。因为对于不同的数据库OTL使用不同的odbc,所以在使用OTL之前需要定义一些宏,告知OTL当前使用的数据库类型。
编译安装
代码下载
otlv4.h头文件,下载地址:http://otl.sourceforge.net/otl3_down.htm。
OTL操作mysql数据库需要通过ODBC来进行,准备mysql-connect-ODBC,
下载地址:http://dev.mysql.com/downloads/connector/odbc。
配置ODBC数据源。
注意:
DSN:数据源名称
服务器:127.0.0.1 (localhost)想要连接的服务器
UID:用户id
PWD:用户密码
Database:要连接的数据库名
string strCon1 = "DSN=testsqlserver;UID=root;PWD=123456;database=mysql ";
strCon1 = "driver=sql server;server=127.0.0.1;UID=root;PWD=123456;database=mysql";
db.rlogon(strCon1.c_str()); // connect to the database
db.rlogon("xiaoming/xiaoming@LPMsAccess"); //登录数据库
3种连接方式
1,数据源odbc连接
2,代码直接连接 "driver=sql server;server=127.0.0.1;UID=用户名;PWD=密码;database=数据库";
3,USER/PASSWORD\@TNS_ALIAS 这种方式 要注意数据库密码有@时会报错
编译错误记录
1)c++: 能运行但是数据库没有显示
解决:x86改成x64
ODBC配置的数据源是x64的编译版本,对应的也要使用x64编译
OTL执行SQL语句的两种方式
1、使用otl_cursor::direct_exec(...)函数直接执行sql语句
例如otl_cursor::direct_exec(db,"create table ccc(aa int);");
2、使用otl_stream流执行sql语句使用步骤如下
otl_stream otlCur(1,(const char*)str,db);
//或者
otl_stream otlCur;
otlCur.open(1,(const char*)str,db);//有点像fstream使用方式