织梦CMS - 轻松建站从此开始!

罗索实验室

当前位置: 主页 > 基础技术 > 数据库开发 >

MySQL++ API的用法

罗索客 发布于 2004-04-16 11:19 点击:次 
关键字:mysql /* MySQL++ API的用法 by hoowa 道歉声明: 由于作者刚刚接触C++与Borland C++ Builder刚刚一周左右, 很多基本概念不是那么准确如果语法上有问题还请各位原谅,不要笑话我。 我在使用C++的MySQL++ API之前一直在找文章,结果没有一篇中文介绍如何使用的。
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
主页: http://www.ilcatperl.org/ ;  (hoowa)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www1.rosoo.net/a/200404/1662.html]
本文出处: 作者:hoowa
顶一下
(2)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容