LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3630|回复: 1

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

[复制链接]
发表于 2006-4-22 00:43:36 | 显示全部楼层 |阅读模式
用Dev-Cpp搭建MySQL++编程环境

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

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


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



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


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

        2、MySQL++源程序
        http://tangentsoft.net/mysql++/releases/mysql++-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环境里。点开“我的电脑->属性->高级->环境变量->ATH”,在文本框最后加上“;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编译器能认识的动态链接库:

  1. C:\MySQL\lib\opt>dlltool -k -d D:\CPP_LIB\mysql++\libmysqlclient.def -l libmysqlclient.a
复制代码


        修改make文件,打开D:\CPP_LIB\mysql++\Makefile.mingw,在文件开头处加上连接选项。(用默认选项可能会编译不过哦 )

  1.                 # linker flags
  2.                 LDFLAGS = -enable-runtime-pseudo-reloc
复制代码


        在目录D:\CPP_LIB\mysql++下打开命令行,执行make命令,就一切搞掂啦

  1.                 D:\CPP_LIB\mysql++>make -f Makefile.mingw all
复制代码


        检查一下,你的D:\CPP_LIB\mysql++\lib目录下是否生成了两个文件:libmysqlpp.a,mysqlpp.dll。
        D:\CPP_LIB\mysql++\examples目录下是否生成了一堆exe文件:

  1.                 D:\CPP_LIB\mysql++\examples>dir *.exe
  2.                 2006-04-21  23:08         1,796,419 resetdb.exe
  3.                 2006-04-21  22:08         1,812,535 simple1.exe
  4.                 2006-04-21  22:08         1,814,477 simple2.exe
  5.                 2006-04-21  22:09         1,810,725 simple3.exe
  6.                 2006-04-21  22:09         1,808,913 usequery.exe
  7.                 2006-04-21  22:09         1,838,997 multiquery.exe
  8.                 2006-04-21  22:10         1,830,994 custom1.exe
  9.                 2006-04-21  22:10         1,800,529 custom2.exe
  10.                 2006-04-21  22:11         1,814,019 custom3.exe
  11.                 2006-04-21  22:11         1,850,548 custom4.exe
  12.                 2006-04-21  22:12         1,846,565 custom5.exe
  13.                 2006-04-21  22:12         1,834,823 custom6.exe
  14.                 2006-04-21  22:13         1,876,140 dbinfo.exe
  15.                 2006-04-21  22:13         1,805,388 fieldinf1.exe
  16.                 2006-04-21  22:14         1,784,760 xaction.exe
  17.                 2006-04-21  22:14         1,634,397 cgi_image.exe
  18.                 2006-04-21  22:14         1,615,386 load_file.exe
  19.                 2006-04-21  22:15         1,669,868 updel.exe
复制代码


三、测试
        在D:\CPP_LIB\mysql++\examples目录下打开命令行,执行刚刚编译出的resetdb,初始化数据库配置:

  1.                 D:\CPP_LIB\mysql++\examples>resetdb
  2.                 Connecting to database server...
  3.                 Dropping existing stock table...
  4.                 Creating new stock table...
  5.                 Populating stock table...
  6.                 Reinitialized sample database successfully.
复制代码


        然后一个个地试试该目录下那些exe文件,看看效果 :-) 这里举两个例子:

  1.                 D:\CPP_LIB\mysql++\examples>simple1
  2.                 We have:
  3.                         Nurnberger Brats
  4.                         Pickle Relish
  5.                         Hot Mustard
  6.                         Hotdog Buns

  7.                 D:\CPP_LIB\mysql++\examples>usequery
  8.                     Nurnberger Brats        92       1.5      8.79 2005-03-10
  9.                        Pickle Relish        87       1.5      1.75 1998-09-04
  10.                          Hot Mustard        75      0.95      0.97 1998-05-25
  11.                          Hotdog Buns        65       1.1       1.1 1998-04-23
复制代码



呵呵,现在可以写自已的代码了。有机会小弟贴一些出来请大家指正 ;-)
 楼主| 发表于 2006-4-23 00:56:15 | 显示全部楼层
MySQL++示例工程

一、配置Dev-C++编译选项
        1、配置连接选项
        点开菜单"工具->编译器选项", 选中"编译器->在连接器命令行加入以入命令"。在该选项下面的文本框内填写:

  1.         -enable-runtime-pseudo-reloc
复制代码


        2、添加MySQL和MySQL++开发包的头文件到查找目录
        点开菜单"工具->编译器选项->目录->C++包含文件”,在下面的列表中加上两行:

  1.         C:\MySQL\include
  2.         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++的工程管理窗口中添加这四个文件。


三、设置工程属性
        点开菜单“工程->工程属性->参数”,在“连接器”对应的文件框中添加两个库文件:

  1. C:/MySQL/lib/opt/libmysqlclient.a
  2. D:/CPP_LIB/mysql++/lib/libmysqlpp.a
复制代码


四、运行
        点击编译运行按钮就可以啦! 不过窗口一闪而过,什么也没有看到 :-( 修改一下文件usequery.cpp中这一段代码:

  1.         catch (const mysqlpp::EndOfResults&) {
  2.                 // Last query result received.  Exit normally.

  3.                 return 0;
  4.         }
复制代码

        修改成:

  1.         catch (const mysqlpp::EndOfResults&) {
  2.                 // Last query result received.  Exit normally.

  3.                 system("PAUSE");  
  4.                 return 0;
  5.         }
复制代码


        这样就OK了,可以看到数据库的查询结果 :-)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表