1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > otl连接mysql数据库_C++类库:OTL连接MySQL ODBC数据库(insert update select)

otl连接mysql数据库_C++类库:OTL连接MySQL ODBC数据库(insert update select)

时间:2024-01-01 15:19:49

相关推荐

otl连接mysql数据库_C++类库:OTL连接MySQL ODBC数据库(insert  update  select)

一. 简介

OTL是一个纯C++的通用数据库连接模板库,可以支持各种当下流行的数据库,如Oracle,Sybase, MySQL, PostgreSQL, EnterpriseDB, SQLite, MS ACCESS, Firebird等等.它是一个跨平台类库,在MS Windows, Linux/Unix/Mac OS X 都可以使用。

OTL使用简单, 只要头文件中包含有: #include "otlv4.h" 就可,实际上整个OTL就一个.H的文件,使用起来极为的方便。

我的下载空间:

二. 使用方法:

1.首先指定要连接的数据库类型,OTL用宏定义来指定要连接的数据库类型。OTL会根据这个宏定义来初始化数据库连接的环境。

如: #define OTL_ODBC_MYSQL表示连接ODBC MySQL数据库。

2、案例:

1) 指定连接的数据库类型:

#define OTL_ODBC_MYSQL // 指定连接的数据库类型2) 导入OTL 4 头文件

#include // include the OTL 4 header file

3) 定义数据库实例:

otl_connect db; // 定义数据库实例

4) 初始化ODBC环境:

otl_connect::otl_initialize();5) 连接ODBC:

db.rlogon("UID=scott;PWD=tiger;DSN=mysql"); // connect to ODBC6). 删除表格:

otl_cursor::direct_exec

(

db,

"drop table test_tab",

otl_exception::disabled // disable OTL exceptions

); // drop table7). 创建表格:

otl_cursor::direct_exec

(

db,

"create table test_tab(f1 int, f2 varchar(30))"

); // create table8). Insert 语句:

// insert rows into table

void insert()

{

otl_stream o(1, // buffer size should be == 1 always on INSERT

"insert into test_tab values(:f1,:f2)",

// SQL statement

db // connect object

);

char tmp[32];

for(int i=1;i<=100;++i)

{

sprintf(tmp,"Name%d",i);

o<

}

}

9). Update 语句:

// update row data into table

void update(const int af1)

{

otl_stream o(1, // buffer size should be == 1 always on UPDATE

"UPDATE test_tab "

" SET f2=:f2 "

" WHERE f1=:f1",

// UPDATE statement

db // connect object

);

o<

o<

}10). Select语句:

// MyODBC does not allow any input bind variables in the WHERE clause

// in a SELECT statement.

// Therefore, the SELECT statement has to be generated literally.

void select(const int af1)

{

char stmbuf[1024];

sprintf(stmbuf,

"select * from test_tab where f1>=%d and f1<=%d*2",

af1,

af1

);

otl_stream i(50, // buffer size may be > 1

stmbuf, // SELECT statement

db // connect object

);

// create select stream

int f1;

char f2[31];

while(!i.eof())

{ // while not end-of-data

i>>f1;

cout<

i>>f2;

if(i.is_null())

cout<

else

cout<

cout<

}

}11). 断开ODBC:

db.logoff(); // disconnect from ODBC

12). 案例:

int main()

{

otl_connect::otl_initialize(); // initialize ODBC environment

try

{

db.rlogon("UID=scott;PWD=tiger;DSN=mysql"); // connect to ODBC

// db.rlogon("scott/[emailprotected]"); // connect to ODBC, alternative format

// of connect string

otl_cursor::direct_exec

(

db,

"drop table test_tab",

otl_exception::disabled // disable OTL exceptions

); // drop table

otl_cursor::direct_exec

(

db,

"create table test_tab(f1 int, f2 varchar(30))"

); // create table

insert(); // insert records into the table

update(10); // update records in the table

select(8); // select records from the table

}

catch(otl_exception& p)

{ // intercept OTL exceptions

cerr<

cerr<

cerr<

cerr<

}

db.logoff(); // disconnect from ODBC

return 0;

}13). 运行结果:

Output

f1=8, f2=Name8

f1=9, f2=Name9

f1=10, f2=Name changed

f1=11, f2=NULL

f1=12, f2=Name12

f1=13, f2=Name13

f1=14, f2=Name14

f1=15, f2=Name15

f1=16, f2=Name16

版权声明:本文为博主原创文章,未经博主允许。

原文:/u013354805/article/details/48011229

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。