otl mysql 下载_OTL mySQL
C++使用OTL与mySql交互
OTL 一般概念
当OTL用于oracle数据库时可以通过oracle数据库提供的接口;当OTL用于非oracle数据库时,OTL提供了odbc接口(oracle数据库也提供),所以使用OTL来控制非oracle数据库均需先安装对应数据库的odbc驱动。
因为对于不同的数据库OTL使用不同的odbc,所以在使用OTL之前需要定义一些宏,告知OTL当前使用的数据库类型。
使用OTL操作mysql
在使用OTL前需要安装myodbc。如果使用5.1及以上版本的myodbc,需要配置mySql使其默认编码方式为utf-8。参考1参考2
在引用otlv4.h头文件之前要先定义几个宏(参考):
#define OTL_ODBC // Compile OTL 4.0/ODBC
// The following #define is required with MyODBC 5.1 and higher
#define OTL_ODBC_SELECT_STM_EXECUTE_BEFORE_DESCRIBE
#define OTL_UNICODE // Compile OTL with Unicode
编译OTL时添加链接库:win32: LIBS+=-lodbc32,为了在尽可能的减少依赖,在发布软件时,使用静态的链接选项(以Qt为例):QMAKE_LFLAGS+=-static
使用
OTL的使用流程
* 首先定义宏,指明所使用的数据库类型并设置环境。如#define OTL_ORA9I
* 定义otl_connect对象。otl_connect db; // connect object
* 使用otl_connect的静态方法otl_initialize()初始化OTL环境。otl_connect::otl_initialize();
* 使用otl_connect的rlogon()方法连接数据库。db.rlogon("user_id/password@odbc_data_source_name");,
* 定义otl_stream()对象。如下示例中所示
* 使用otl_stream的<
* 使用otl_stream的>>操作符读取返回结果
* 调用otl_connect的logoff()方法从数据库断开
示例(仅作为参考,具体例子参考官方资料)
//use #define OTL_UNICODE
try {
//insert
otl_stream insert_data(
1,// buffer size should be == 1 always on INSERT.
"insert into t_belt_realtime_data(velocity, cumulation, datetime, belt_id, logs )"
"values(:velocity,:cumulation,:datetime,:belt_id, :logs)",
// SQL statement, char[5] means 5 2-byte. Unicode charatcters including a null terminator
db_ // connect object
);
//每次填充一个数据,从左到右,当前的例子一共需要填充5次数据
insert_data<(data.first);//std::pair data; 将数据转化为与sql语句中对应占位符相同的类型
insert_data<(data.second);
insert_data<(time(nullptr));
insert_data<(0);
unsigned short tmp[32]; // Null terminated Unicode character array.
tmp[0]=1111; // Unicode character (decimal code of 1111)
tmp[4]=0; // Unicode null terminator
insert_data<
//select
char str_sql[] = "select velocity, cumulation fromt_belt_realtime_data "//注意sql语句中的空格
" WHERE datetime >= :time_tem" ;
otl_stream select_data(
1,//指定缓冲行数,OTL中应该还有一层隐藏的缓冲区,这里指定的缓冲区只是指定每次OTL填充的行数。
(const char*)str_sql,
db_ );
select_data<(0);
float v,c;
while(!select_data.eof()) { //显示所有数据,虽然说缓冲区只设定为1
//执行str_sql之后返回的数据的行数可能大于1,但OTL会将他们保存在其默认缓冲区中。
//只有select_data中所有有效行都迭代完成之后eof才会置true。
select>>v>>c;
cout<
}
} catch(otl_exception& p) {
cerr<
cerr<
cerr<
}
占位符:示例第一句语句中由冒号开头的变量为占位符参数,我们需要使用<
* float:4-byte floating point number
* int:signed 32-bit int
* short:short int (16-bit signed integer)
* unsigned:unsigned int (32-bit unsigned integer)
* char[length]:由NUL结尾的字符串,最大长度依赖于数据库(length参数是必须的,length表示的是字符个数且length中包含了NUL)。如果定义了宏OTL_UNICODE,那么字符串的编码方式为UTF-16(每个字符两字节),且依旧使用NUL结尾。(char[11]可以用于绑定varchar(9))。
* 其他
otl mysql 下载_OTL mySQL相关推荐
- MySQL下载与MySQL安装图解(MySQL5.7与MySQL8.0)
MySQL下载与MySQL安装图解(MySQL5.7与MySQL8.0) 1.MySQL下载(MySQL8.0社区版) mysql下载方法,请根据风哥以下步骤与图示来下载mysql8.0最新社区版本: ...
- mysql 下载、运行
一.mysql 下载 1.mysql下载地址:MySQL :: Download MySQL Community Server 2.点击图中标注的地方 3.下图中1.2.3选择自己所需要的版本,下载压 ...
- mysql 下载安装教程以及密码初始化
一.mysql 下载安装 官网地址:https://dev.mysql.com/ 下载历史版本: 下载5.7.11 二.安装mysql 下载好mysql后,将软件解压自己想要的位置,不需解压,并把目录 ...
- MySQL下载与安装教程以及环境变量配置
MySQL下载 1 搜索mysql 选择mysql downloads 如下 2 点击滑动到底部选择社区版本(免费) 如下 3 选择Community Server 如下 4 选择对应的版本下载 我选 ...
- cent os mysql下载_Cent OS 6.4安装mysql
Cent OS6.4 RPM安装mysql 一.卸载掉原有mysql 因为目前主流Linux系统版本基本上都集成了mysql数据库在里面 如下命令来查看我们的操作系统上是否已经安装了mysql数据库 ...
- mysql下载地址与安装
MySQL下载与安装 一.下载 地址:https://dev.mysql.com/downloads/mysql/ 当前最新是8.0版本,我选择上一个最新的mysql-5.7.24-winx64.zi ...
- 刘道成mysql视频教程_燕十八刘道成Mysql 系列视频教程 Mysql视频教程打包下载
课程名称 燕十八刘道成Mysql 系列视频教程 Mysql视频教程打包下载 课程介绍 本教程完全从初学者的角度出发,循序渐进,逐步深入,确保每一位初学者能够理解和掌握,进而达到精通的程度,本套教程非常 ...
- my SQL下载安装,环境配置,以及密码忘记的解决,以及navicat for mysql下载,安装,测试连接...
一.下载 在百度上搜索"mysql-5.6.24-winx64下载" 二.安装 选择安装路径,我的路径"C:\Soft\mysql-5.6.24-winx64" ...
- MySQL下载与配置
一.MySQL下载 MySQL下载地址: https://dev.mysql.com/downloads/mysql/ 选择注册,登录,或者直接进行下载. 选择下载ZIP或者MSI格式.其中ZIP格式 ...
- eclipse jdbc mysql下载_在eclipse里jdbc连接mysql 怎么安装
纯新手,百度了好久"jdbc怎么安装""eclipsemysqljdbc"找不到教程,试着下载了mysql-connector-java-5.0.3-bin.j ...
最新文章
- 美通信与动力公司向WIN-T军事通信计划提供支持
- springboot整合spring @Cache和Redis
- linux双wan网关负载均衡,Csico2951路由器,如何做到双WAN口负载均衡?
- 转为字符数组_数组的20种常用的方法?
- 图像处理笔记(十八):模板匹配
- 【王道计组笔记】储存系统(1):基本概念
- php纯真ip调用,使用php调用纯真IP数据库信息的解析组件
- 国开大学c语言程序设计形考任务1,国开电大《数控编程技术》形考任务1-4答案...
- c java gs_Java基础-gs(垃圾回收)
- 磊科路由器信号按键_怎样隐藏磊科路由器WiFi信号
- 泰坦尼克号数据挖掘项目实战——Task1 数据分析
- Livid : 在 26 岁时写给 18 岁的自己
- 測試電容器好壞与常用单位换算
- Outlook Business Contact Manager 2010入门
- 编写一个程序,分别使用字节流和字符流拷贝一个文本文件
- AUC的计算方法及相关总结
- 凯哥自媒体:怎样用今日头条自媒体赚钱?
- 30亿卖身苹果的Beats,最终还是沦为AirPods的垫脚石
- 原理图端口符号_原理图输入设计历史(一)
- 计算机维修基础知识pdf,电脑主板维修基础知识.pdf