转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> MySql >> 正文
mysql++ 自带的一些精巧演示例子         ★★★★

mysql++ 自带的一些精巧演示例子

作者:闵涛 文章来源:闵涛的学习笔记 点击数:904 更新时间:2009/4/22 20:49:03

最近在工作的时候需要使用 mysql++ 来访问 MySQL 数据库,下载源码后看了一下,发现一些代码 非常优雅。
所以贴出来,和大家分享一下。

简单介绍一下 mysql++

mysql++ API 是一组访问MySQL的C++ API封装。主要目的在于把各种Query的操作和STL容器更好的结合。
mysql++ 可以在这里下载: http://www.mysql.com/download_mysql++.html
mysql++ 的邮件列表是: mysql-plusplus@lists.mysql.com
mysql++ API 的几个典型例子:

使用 in 删除 记录:

  ostringstream strbuf;
  unsigned int i = 0;
  con.real_connect(MY_DATABASE, MY_HOST, MY_USER, MY_PASSWORD, 3306, (int) 0, 60, NULL);
  Query query = con.query();
  query << MY_QUERY;       // 使用这样的方法进行查询,真是很简练呀!tcf
  ResUse res = query.use();
  Row row;
  // 开始拼 sql
  strbuf << "delete from " << MY_TABLE << " where " << MY_FIELD << " in (";
  for (; row = res.fetch_row(); i++)
   strbuf << row[0] << ",";
  if (!i)
   return 0;
  string output(strbuf.str());
  output.erase(output.size() - 1, 1); // 去掉最后一个,
  output += ")";
  query.exec((const string &) output); 
  //打印结果
  cout << output << endl;
  return 0;

-------------------------------------------------------------------------------------------------------
 query.reset();
 query << "select * from cpptest";
 // 打印 query 语句
 cout << "Query: " << query.preview() << endl;

 // 执行query 并保存到 Result
 mysqlpp::Result res = query.store();
 cout << "记录条数: " << res.size() << endl << endl;
 // 打印表中的数据
 cout.setf(ios::left);
 cout << setw(20) << "Item" <<
  setw(9) << "Num" <<
  setw(9) << "Weight" <<
  setw(9) << "Price" << "Date" << endl << endl;

 // Result 类提供的 iterator是只读随机 显示读取记录的
 mysqlpp::Row row;
 mysqlpp::Result::iterator i;
 
 for (i = res.begin(); i != res.end(); ++i) {
  row = *i;
  // 可以使用 列的位置或者 名称来 显示
  cout << setw(20) << row[0].c_str() <<
   setw(9) << row[1].c_str() <<
   setw(9) << row.lookup_by_name("weight").c_str() <<
   setw(9) << row[3].c_str() <<
   row[4] << endl;
 }

-----------------------------------------------------------------------------------------------------

一个简单的查询
  Query query = con.query();
  stock row;
  row.set("Hot Dogs", 100, 1.5, 1.75, "1998-09-25");
  query.insert(row);
  cout << "Query : " << query.preview() << endl;
  query.execute();
  print_stock_table(query);
--------------------------------------------------------------------------------------------------------



我现在要做的是 在 ATL 中使用 mysql++ 。


[MySql]PHP存取 Mysql 数据乱码终极解决方案  [MySql]解决Table xxx is marked as crashed and should …
[MySql][MySQL]快速解决"is marked as crashed and shoul…  [MySql]MySQL DELETE语法用法详解
[MySql]mysql中时间日期格式化  [MySql]修改mysql导入文件大小限制
[其他]MySql常用命令大全  [Web开发]把ACCESS的数据导入到Mysql中的方法详解
[MySql]解决mysql 1040错误Too many connections的方法  [系统软件]利用crontab系统每天定时备份MySQL数据库
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台