首页 › Category Archives › mysql++

在Windows下mysql++支持UTF8

这几天帮一个朋友修改一个产品,这个产品是在Windows下通过C++的mysql++去访问mysql数据库,同时,该产品的数据需要支持多语 言(中文、日文、韩文、法文等)。而mysql对于多语言的支持采用的字符集是utf8,但是,在windows下的vs中是采用unicode,这样就 需要进行字符集的转化。而该产品的代码中,又使用了STL的string,这样就更麻烦了。
继续阅读 »

mysql++如何设置字符集

在用mysql++连接mysql时,发现读出的数据有乱码,然后看看mysql++的源码,发现mysql++提供有设置字符集的接口,方法如下所示:
继续阅读 »

MYSQL++源码剖析——前言与目录

终于完成了!

从第一次想写到现在真的写好大概花了我3个月时间。原来一直读人家的系列文章,总感慨作者的用心良苦和无私奉献,自己在心里总是会觉得有那么些冲动也来写一个。
继续阅读 »

14. MYSQL++之SSQLS(原理解析)

从之前所介绍的SSQLS的介绍中我们可以感受到,SSQLS的精髓应该在sql_create_#这个宏,他所创建出来的这个结构体将会是突破的关键,所以我将会从以下顺序入手。
继续阅读 »

13. MYSQL++之SSQLS(基本用法篇)

1. 综述

终于来到了SSQLS( Specialized SQL Structure),照我看来这是一个很类似于Hibernate的功能。也就是说,通过SSQLS可以将一张表完全对应到一个C++结构体中,然后只要对于这个结构体进行操作,同时再加入到对应的mysqlpp:: Query对应的方法中,我们就可以执行对应的SQL语句。
继续阅读 »

12. MYSQL++之Template Query

1. 什么是Template Query

在我们实际的编程过程中,我们很容易碰到printf这类需要在运行时来决定到底打印出什么的函数,例如

在这个例子中,那个%s占位符表明了我们以后希望打印的内容格式和位置。同样,在我们书写SQL语句的时候,也会出现这样的情况,例如
继续阅读 »

11. MYSQL++ 之 Quoting 与 Escaping

1. 综述

其实一看到这两个单词的时候我有点莫名其妙,可能英语没有学好,我的理解就是quoting是“引用”的意思,而Escaping是“逃脱”的意思。后来在看到了作者的TUTORIAL之后才大致明白了两者的意思。
继续阅读 »

10. MYSQL++ 之 DbDriver

1. 综述

DbDriver只是对于MYSQL C API的一个非常简单的封装,作者原句是This class does as little as possible to adapt between its public interface and the interface required by the underlying C API. 作为MYSQL++的使用者我们不应该直接去创建这个类型,而应该默认让mysqlpp:: Connection来来创建和管理,如果实在是需要,可以通过mysqlpp:: Connection::driver( )来获取底层的DbDriver类型。
继续阅读 »

9. MYSQL++中的Field、FieldNames以及FieldTypes类型

mysqlpp::Field其实使用的并不多,主要在于Result.h中ResultBase以及他的派生类型(UseQueryResult和StoreQueryResult)的几个获取下一个field的方法(全部定义在了ResultBase中),主要如下
继续阅读 »

8. MYSQL++中的Row类型

一、mysqlpp::Row类型

在之前的介绍中我们看到了如何通过mysqlpp::Query找到各种Result类型,然后又仔细分析了各种Result类型又是如何生成对应的Row类型(如下所示)。
继续阅读 »