利用OTL操纵MySQL数据库【mysql】
来源:互联网 发布:华腾软件怎么样 编辑:程序博客网 时间:2024/06/05 07:34
在一个项目中,通过时间戳增量将远程数据同步到本地,利用OTL(http://otl.sourceforge.net/)完成对MySQL数据库的操作。将其中部分工作抽象简化后总结如下。
数据表包含3个字段:编号(自增的主键,PK AI),姓名,年龄。依据编号选出某一行数据,年龄增加其余属性不变写入新行,删除旧数据。
方法一:
定义update函数:
View Code
1 void update(int id) 2 { 3 char name[30]; 4 int age; 5 6 // start transaction 7 otl_stream ob(1, 8 "start transaction;", 9 db 10 ); 11 12 // select old row 13 otl_stream o1(50, 14 "select name, age from test_tab where id=:id<int>;", 15 db 16 ); 17 o1 << id; 18 o1 >> name >> age; 19 cout << "name = " << name << ", age = " << age << endl; 20 age++; 21 22 // insert new row 23 otl_stream o2(1, 24 "insert into test_tab (name, age) values (:name<char[30]>, :age<int>);", 25 db 26 ); 27 o2 << name << age; 28 29 // delete old row 30 otl_stream o3(1, 31 "delete from test_tab where id=:id<int>;", 32 db 33 ); 34 o3 << id; 35 36 // commit 37 otl_stream oe(1, 38 "commit;", 39 db 40 ); 41 }
参数绑定通过OTL中的otl_stream对象完成,与标准输入输出对象类似,otl_stream也重载了<<和>>。
方法2:
在数据库中定义存储过程updateAge:
1 DELIMITER $$ 2 3 CREATE PROCEDURE `updateAge` (IN _id INT) 4 BEGIN 5 start transaction; 6 select @name:=name, @age:=age from test_tab where id=_id; 7 insert into test_tab (name, age) values (@name, @age+1); 8 delete from test_tab where id=_id; 9 commit; 10 END
调用存储过程:
1 otl_connect db; 2 int id = 17; 3 string sql_str("call updateAge(:id<int>)"); 4 otl_stream call_proc(1, sql_str.c_str(), db); 5 call_proc << id;
修改结果:
- 利用OTL操纵MySQL数据库【mysql】
- vc操纵mysql数据库
- otl 直接使用字符串连接mysql数据库
- otl 直接使用字符串连接mysql数据库
- otl 直接使用字符串连接mysql数据库
- C++07:使用OTL操作MySQL数据库
- C++07使用OTL操作MySQL数据库
- jdbc初步 Java操纵MySQL数据库
- shell脚本简单操纵mysql数据库
- MySQL之数据库操纵语言(DML)
- Linux下otl调用MySQL数据库9.1版
- C++类库:OTL连接MySQL ODBC数据库(insert, update, select)
- otl + mysql 查询 中文参数
- otl通过myodbc连接mysql
- 通过otl来使用MySQL
- Python操纵MySQL.
- mysql 操纵数据语句
- 使用QSqlQuery操纵mysql
- 在RedHat Linux环境下手工启动/关闭Oracle 服务
- (转)Android软件开发之ListView 详解 (十一)
- static修饰符详解
- Spring对hibernate配置文件hibernate.cfg.xml的集成,来取代hibernate.cfg.xml的配置
- android工具之TraceView学习笔记
- 利用OTL操纵MySQL数据库【mysql】
- 深度分析数据中心之CN(Congestion Notification)技术
- Linux下Tomcat的启动、关闭、杀死进程
- asp.net中关于<% %>、<%= %>的用法总结 .
- 模拟选择项左边移动到右边的功能
- 结构体
- Android声明和使用权限
- Android中与JSON相关的应用
- Arcgis API For js 的离线部署问题(转)