用Dev-Cpp搭建MySQL++编程环境

用Dev-Cpp搭建MySQL++编程环境

小弟这两天要写个小程序,涉及到数据储存处理比较多,想安装个数据库。以前用过一段时间MS SQL Server 2000,整整一张安装盘,安装配置一下就得大半天。对付芝麻大的小程序,真是杀鸡用牛刀。要找一个轻量级的数据库,首先想到的就是MySQL,久闻大名,但从未谋面,今天想见识见识它的真功夫 :-)

到MySQL官方网站看了一下,不得了,这家伙身材虽不大,才十几兆,功能已经向企业级看齐了,完全不像是几年前听说的那个小玩意。再看看我关心的编程接口,不错不错,还有个叫MySQL++的C++ wrapper,而且是STL风格的接口,呵呵,这样一套完美的封装使数据库编程完全成为了一种享受, 来一段看看:

代码:
vector<mystruct> v; Query q = connection.query(); q << "SELECT * FROM mytable"; q.storein(v); for (vector<mystruct>::iterator it = v.begin(); it != v.end(); ++it) { cout << "Price: " << it->price << endl;

小弟使用数据库机会不多,知之甚少,如有错误请指正。


一、下载
1、MySQL5.0安装程序(精简版)
http://dev.mysql.com/get/Downloads/M...rix.net/mysql/

2、MySQL++源程序
http://tangentsoft.net/mysql++/relea...+-2.1.1.tar.gz

3、Dev-Cpp 4.9.9.2
http://www.yaguo.com/web/softroom/dl.asp?addid=5066

二、安装
1、安装Dev-Cpp
Dev-Cpp是windows平台下的一套开发C++程序的GUI,集成了mingw编译工具。安装这个太简单乐,不多说,GUI的安装方式,一直点OK就行啦 :-)
安装完成后,要记得把mingw编译器的路径C:\Dev-Cpp\bin添加行系统PATH环境里。点开“我的电脑->属性->高级->环境变量->PATH”,在文本框最后加上“;C:\Dev-Cpp\bin”。

2、安装MySQL5.0
也是GUI的安装方式,一定要装安装路径设置为“C:\MySQL”,否则编译MySQL++源代码会有问题。其它默认就OK可以乐。安装完成了,别忘了配置一下Server Instance。

3、编译MySQL++源代码
解压 mysql++-2.1.1.tar.gz 到 D:\CPP_LIB\mysql++ (这是我的安装路径,自已可以随意调整啦)

在目录C:\MySQL\lib\opt下打开命令行,执行下列命令行,生成mingw编译器能认识的动态链接库:
代码:
C:\MySQL\lib\opt>dlltool -k -d D:\CPP_LIB\mysql++\libmysqlclient.def -l libmysqlclient.a
修改make文件,打开D:\CPP_LIB\mysql++\Makefile.mingw,在文件开头处加上连接选项。(用默认选项可能会编译不过哦 :P )
代码:
# linker flags LDFLAGS = -enable-runtime-pseudo-reloc
在目录D:\CPP_LIB\mysql++下打开命令行,执行make命令,就一切搞掂啦
代码:
D:\CPP_LIB\mysql++>make -f Makefile.mingw all
检查一下,你的D:\CPP_LIB\mysql++\lib目录下是否生成了两个文件:libmysqlpp.a,mysqlpp.dll。
D:\CPP_LIB\mysql++\examples目录下是否生成了一堆exe文件:
代码:
D:\CPP_LIB\mysql++\examples>dir *.exe 2006-04-21 23:08 1,796,419 resetdb.exe 2006-04-21 22:08 1,812,535 simple1.exe 2006-04-21 22:08 1,814,477 simple2.exe 2006-04-21 22:09 1,810,725 simple3.exe 2006-04-21 22:09 1,808,913 usequery.exe 2006-04-21 22:09 1,838,997 multiquery.exe 2006-04-21 22:10 1,830,994 custom1.exe 2006-04-21 22:10 1,800,529 custom2.exe 2006-04-21 22:11 1,814,019 custom3.exe 2006-04-21 22:11 1,850,548 custom4.exe 2006-04-21 22:12 1,846,565 custom5.exe 2006-04-21 22:12 1,834,823 custom6.exe 2006-04-21 22:13 1,876,140 dbinfo.exe 2006-04-21 22:13 1,805,388 fieldinf1.exe 2006-04-21 22:14 1,784,760 xaction.exe 2006-04-21 22:14 1,634,397 cgi_image.exe 2006-04-21 22:14 1,615,386 load_file.exe 2006-04-21 22:15 1,669,868 updel.exe
三、测试
在D:\CPP_LIB\mysql++\examples目录下打开命令行,执行刚刚编译出的resetdb,初始化数据库配置:
代码:
D:\CPP_LIB\mysql++\examples>resetdb Connecting to database server... Dropping existing stock table... Creating new stock table... Populating stock table... Reinitialized sample database successfully.
然后一个个地试试该目录下那些exe文件,看看效果 :-) 这里举两个例子:
代码:
D:\CPP_LIB\mysql++\examples>simple1 We have: Nurnberger Brats Pickle Relish Hot Mustard Hotdog Buns D:\CPP_LIB\mysql++\examples>usequery Nurnberger Brats 92 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 75 0.95 0.97 1998-05-25 Hotdog Buns 65 1.1 1.1 1998-04-23

呵呵,现在可以写自已的代码了。有机会小弟贴一些出来请大家指正 ;-)







__________________
I believe I can fly.

此帖于 06-04-22 12:18 被 sweord 编辑.
  sweord 当前离线   回复时引用此帖
旧 06-04-23, 00:56 第 2 帖
 
sweord 的头像
 
 
注册会员 
  注册日期: Mar 2004
  帖子: 48
  精华: 0
 

MySQL++示例工程

一、配置Dev-C++编译选项
1、配置连接选项
点开菜单"工具->编译器选项", 选中"编译器->在连接器命令行加入以入命令"。在该选项下面的文本框内填写:
代码:
-enable-runtime-pseudo-reloc
2、添加MySQL和MySQL++开发包的头文件到查找目录
点开菜单"工具->编译器选项->目录->C++包含文件”,在下面的列表中加上两行:
代码:
C:\MySQL\include D:\CPP_LIB\mysql++\include

二、新建工程
启动Dev-C++,新建一个工程。选择工程类型为console application,语言为C++,工程名为MySQLpp。将工程保存到D:\Test\DevCpp\MySQLpp目录下,删除工程默认创建的main.cpp文件。
从目录D:\CPP_LIB\mysql++\examples下复制stock.h, util.h, util.cpp, usequery.cpp四个文件到工程目录D:\Test\DevCpp\MySQLpp中。在Dev-C++的工程管理窗口中添加这四个文件。


三、设置工程属性
点开菜单“工程->工程属性->参数”,在“连接器”对应的文件框中添加两个库文件:
代码:
C:/MySQL/lib/opt/libmysqlclient.a D:/CPP_LIB/mysql++/lib/libmysqlpp.a
四、运行
点击编译运行按钮就可以啦! 不过窗口一闪而过,什么也没有看到 :-( 修改一下文件usequery.cpp中这一段代码:
代码:
catch (const mysqlpp::EndOfResults&) { // Last query result received. Exit normally. return 0; }
修改成:
代码:
catch (const mysqlpp::EndOfResults&) { // Last query result received. Exit normally. system("PAUSE"); return 0; }
这样就OK了,可以看到数据库的查询结果 :-)

posted on 2009-09-08 10:30  cy163  阅读(...)  评论(...编辑  收藏

导航