MySQL++学习日记(二)

来源:互联网 发布:南充行知小学 编辑:程序博客网 时间:2024/05/22 12:59
我只是将文档里的一些东西写了下来,我的学习参考http://yun.baidu.com/share/link?shareid=524984541&uk=121920724,也是在网上找的一个中文文档,有人需要的话可以去提=。=。


MySQL++中的一些特殊处理:

             SELECT* FROM ××× WHERE item = '×××';

等价于

             strings = "×××";

             query<< "SELECT * FROM ××× WHERE item = " <<quote_only << s;

 

          SELECT* FROM ××× WHERE item = '×××'×××';

对这种单引泄露的操作:

             strings = "×××'×××";

             query<< "SELECT * FROM ××× WHERE item = " << quote<< s;

MySQL++的数据类型:

              mysqlpp::×××

当SQL NULL 时一个类型修饰时,

MySQL++提供一个空的模板去实现类似于C++的NULL类型,例如:

              mysqlpp::sql_×××_null  ×××;

当SQLNULL是一个唯一值时:

              myfield= mysqlpp::null;

MySQL++的特殊的String类型:

String和SQLTypeAdapter,

Row::operator[]的返回值是String,String比std::string强大的一点,String可以将Data类型转换为String类型,反之亦然。如初始化

“2010-01-01”,String可将其转化为Data.

MySQL++的三种查询语句:
Query::execute(),Query::store(),Query::use().
execute()返回SimpleResult,例如是否执行成功,操作行数等。
store()返回StoreQueryResult对象,对象记录全部查询结果。
use()返回UseQueryRusult对象,数据库每次返回一个数据。(巨大量级查询使用)

这里有一段使用use()的代码:

#include <mysql++.h>
#include <iostream>

using namespace std;

int main()
{
    mysqlpp::Connection conn(false);
    if(conn.connect("test","localhost","×××","××××"))
    {
        mysqlpp::Query query=conn.query("select * from Student");
        if(mysqlpp::UseQueryResult res=query.use())
        {
        cout<<setw(20)<<"name"<<setw(10)<<"ID"<<endl;
        while(mysqlpp::Row row=res.fetch_row())
        {
        cout<<setw(19)<<row["name"]<<setw(9)<<row["ID"]<<endl;
        }
         if(conn.errnum())
              {
                  cerr<<"Error received in fetching a row:"<<
                      conn.error()<<endl;
                  return 1;
              }
        return 0;
        }
        else
        {
        cerr<<"Faild to get data:"<<query.error()<<endl;
        return 1;
        }
    }
        else
        {
        cerr<<"DB connection failed: "<<conn.error()<<endl;
        return 1;
        }
}







0 0