TAG:
关键字:mysql /* MySQL++ API的用法 by hoowa 道歉声明: 由于作者刚刚接触C++与Borland C++ Builder刚刚一周左右, 很多基本概念不是那么准确如果语法上有问题还请各位原谅,不要笑话我。 我在使用C++的MySQL++ API之前一直在找文章,结果没有一篇中文介绍如何使用的。 象我这样刚刚接触bcb由需要连接mysql的人真是想哭都不行! 那么为什么不使用myodbc呢?因为MySQL++快。 为什么不使用其他一些很强大很方便的数据库控件呢? 因为hoowa在linux下做perl程序的时候都是直接使用SQL语句, 就象农民刚进城做汽车不舒服一样:) 第一步: 好了,我们首先下载MySQL++ API 的borland版,记得是borland版! 地址在: http://www.mysql.com/downloads/download.php? file=Downloads%2Fmysql%2B%2B%2Fmysql%2B%2B-1.7.9-win32-bcb6-1.zip&pick=mirror 第二步: 下载后请注意目录结构:include目录下的mysql会用到,lib\\rel的文件也必须有, 还有src里的sqlplus,sqlplus\\release 我其实没搞明白为什么这么多东西,我的做法是直接把所有的文件都放在程序里。 第三步: 建立一个工程在Project->Options->Directory->include paths指定include\\mysql的 目录和sqlplus的目录 在View->Project Manager->Add增加libmysql.lib和sqlplus.lib Project Options->Linker取消Use dynamic RTL 将libmysql.dll复制到你程序的目录 第四步: 可以开始编写代码了,确保你的mysql可以被连接! */ // 加载MySQL++的人工步骤 #include <windows.h> //确保在所有代码中都要包含这一句在首位,没有肯定不行 #include "mysql++.h"; //使用sqlplus.hh也一样,不必要每个代码都包含 //构造一个Connection类的对象 Connection con = new Connection(); //创建数据库的连接 con.real_connect("mysql", "localhost", "root", ""); //第一个是db名称,然后是服务器地址,用户名,密码 /* 有以上步骤就算创建了一个数据库连接了,下面是基本的状态显示方法 */ cout << con.client_info() << endl; //显示客户端信息 cout << con.host_info() << endl; //应该是连接的服务器与使用的协议 cout << con.server_info() << endl; //显示服务器信息 cout << con.stat() << endl; //server当前状态 /* 可用的一些命令函数 */ con.exec("use test"); //exec函数执行mysql命令,仅返回真或假, //可以使用一些命令比如delete from database等 con.close(); //关闭连接,这个函数使用在最后与mysql来一个友好的byebye con.select_db("test"); //选择一个database,我喜欢用命令而不是函数来做 /* 下面是查询语句的例子,下面讲的可是单行结果的查询语句的例子! 以下内容都假设在名字为mysql的db当中 */ Query query = con.query(); //构造类Query的对象 query << "select * from user limit 1"; //你要执行的SQL语句 ResUse res = query.use(); //构造ResUse的对象res Row row = res.fetch_row(); //将数据fetch到row对象中 cout << row.raw_data(0) << endl; //第0个字段的内容 //这些用法在多行或单行结构的查询语句中都通用 cout << res.num_fields << endl; //字段的数量 cout << res.field_name(0) << endl; //0字段的名字 cout << row.size() << endl; //记录的数量 /* 多行结果的查询语句例子 */ Query query = con.query(); query << "select * from user limit 1"; Result res = query.store(); //Result对象 Row row; Result::iterator i; for(i = res.begin(); i != res.end(); i++) { row = *i; cout << row[0].c_str() << row[1].c_str << endl; //显示内容0、1 } -------------------------------------------------------------------------------- 著名的perl工程师,最近著作有《FastCGI中文参考手册》 EMail:hoowa@263.net 主页: ![]() |