使用OTL操作MySQL資料庫
使用OTL操作MySQL資料庫
一、編寫程式碼
注:以下程式碼來自OTL示例,略有改動
#includeusing namespace std; #include #include #include #define OTL_ODBC // Compile OTL 4.0/ODBC // The following #define is required with MyODBC 3.51.11 and higher #define OTL_ODBC_SELECT_STM_EXECUTE_BEFORE_DESCRIBE #define OTL_ODBC_UNIX // uncomment this line if UnixODBC is used #include // include the OTL 4.0 header file otl_connect db; // connect object void insert() // insert rows into table { otl_stream o(1, // buffer size should be == 1 always on INSERT "insert into test_tab values " " (:f1 ,:f2 ), " " (:f12 ,:f22 ), " " (:f13 ,:f23 ), " " (:f14 ,:f24 ), " " (:f15 ,:f25 ) ", // INSERT statement. Multiple sets of values can be used // to work around the lack of the bulk interface db // connect object ); // If the number of rows to be inserted is not known in advance, // another stream with the same INSERT can be opened otl_stream o2(1, // buffer size should be == 1 always on INSERT "insert into test_tab values " " (:f1 ,:f2 )", db // connect object ); char tmp[32]; int i; for (i = 1; i <= 100; ++i) { sprintf(tmp, "Name%d", i); o << i << tmp; } for (i = 101; i <= 103; ++i) { sprintf(tmp, "Name%d", i); o2 << i << tmp; } } void update(const int af1) // insert rows into table { 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 << "Name changed" << af1; o << otl_null() << af1 + 1; // set f2 to NULL } void select(const int af1) { otl_stream i(50, // buffer size may be > 1 "select * from test_tab " "where f1>=:f11 " " and f1<=:f12 *2", // SELECT statement db // connect object ); // create select stream int f1; char f2[31]; i << af1 << af1; // :f11 = af1, :f12 = af1 while (!i.eof()) { // while not end-of-data i >> f1; cout << "f1=" << f1 << ", f2="; i >> f2; if (i.is_null()) cout << "NULL"; else cout << f2; cout << endl; } } int main() { otl_connect::otl_initialize(); // initialize ODBC environment try { // db.rlogon("UID=xuanyuan;PWD=xuanyuan;DSN=examples"); // connect to ODBC db.rlogon("xuanyuan/xuanyuan@examples"); // connect to ODBC, alternative format of connect string otl_cursor::direct_exec(db, "use examples"); // 此行在原示例程式碼中沒有,必須使用use xxx切換資料庫 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)) type=innoDB"); // 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 << p.msg << endl; // print out error message cerr << p.stm_text << endl; // print out SQL that caused the error cerr << p.sqlstate << endl; // print out SQLSTATE message cerr << p.var_info << endl; // print out the variable that caused the error } db.logoff(); // disconnect from ODBC return 0; }
二、編譯程式碼
g++ -o"otl_test2" otl_test2.cpp -lmyodbc3
三、執行程式 otl_test
$ ./otl_test2
結果如下:
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
四、關於OTL更多的資訊
請訪問OTL的主頁:http://otl.sourceforge.net/
Linux下C/C++、ACE、Boost、高效能伺服器端應用
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28949713/viewspace-774929/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 資料庫操作MySql資料庫
- MySQL學習筆記-使用Navicat操作MySQL資料庫MySql筆記資料庫
- 使用mysql-connector-python操作MYSQL資料庫MySqlPython資料庫
- Mysql資料庫操作命令MySql資料庫
- PHP操作MySQL資料庫PHPMySql資料庫
- MySQL資料庫常用操作MySql資料庫
- 【Java】操作mysql資料庫JavaMySql資料庫
- MySQL資料庫基本操作MySql資料庫
- shell 操作mysql資料庫MySql資料庫
- 【Mysql】改資料庫庫名操作MySql資料庫
- MySQL Workbench 中文使用指南 - 如何使用 Workbench 操作 MySQL 資料庫教程MySql資料庫
- mysql資料庫基本操作(六)MySql資料庫
- mysql資料庫基本操作(三)MySql資料庫
- mysql資料庫基本操作(四)MySql資料庫
- mysql資料庫基本操作(五)MySql資料庫
- 02、MySQL—資料庫基本操作MySql資料庫
- python資料庫(mysql)操作Python資料庫MySql
- python 操作mysql資料庫PythonMySql資料庫
- Python Mysql 資料庫操作PythonMySql資料庫
- python操作mysql資料庫PythonMySql資料庫
- 【Falsk 使用資料庫】---- 資料庫基本操作資料庫
- ASP.NET Core使用EF Core操作MySql資料庫ASP.NETMySql資料庫
- Mysql資料庫基礎操作命令MySql資料庫
- Python之 操作 MySQL 資料庫PythonMySql資料庫
- MySQL資料庫操作、儲存引擎MySql資料庫儲存引擎
- MySQL系列:資料庫基本操作(1)MySql資料庫
- MySQL資料庫常用操作和技巧MySql資料庫
- MySQL(一) 資料表資料庫的基本操作MySql資料庫
- python的ORM技術:使用sqlalchemy操作mysql資料庫PythonORMMySql資料庫
- MySQL資料庫使用(二)MySql資料庫
- SQLALchemy操作MySQL關係型資料庫MySql資料庫
- mysqlclient操作MySQL關係型資料庫MySqlclient資料庫
- Go語言中mysql資料庫操作(一)GoMySql資料庫
- 2.資料庫Mysql--------基本操作資料庫MySql
- 01-python操作Mysql資料庫PythonMySql資料庫
- Python3 MySQL 資料庫操作PythonMySql資料庫
- win7 cmd 操作mysql資料庫Win7MySql資料庫
- MYSQL資料庫常用操作命令節選MySql資料庫