打印本文 打印本文 关闭窗口 关闭窗口
MySQL数据库学习笔记(三)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3591  更新时间:2009/4/22 20:49:06  文章录入:mintao  责任编辑:mintao
    con.connect("mysql_cpp_data","localhost","root","");

    Query query = con.query();

    query << "select * from stock";

    Result res = query.store();

   

    cout << "Query: " << query.preview() << endl;

    cout << "Records Found: " << res.size() << endl << endl;

 

    cout << "Query Info:\n";

    cout.setf(ios::left);

 

    for (unsigned int i = 0; i < res.names().size(); i++) {

      cout << setw(2)  << i

          << setw(15) << res.names(i).c_str()

       // this is the name of the field

          << setw(15) << res.types(i).sql_name()

       // this is the SQL identifier name

       // Result::types(unsigned int) returns a mysql_type_info which in many

       // ways is like type_info except that it has additional sql type

       // information in it. (with one of the methods being sql_name())

          << setw(20) << res.types(i).name()

       // this is the C++ identifier name which most closely resembles

       // the sql name (its is implementation defined and often not very readable)

          << endl;

    }

 

    cout << endl;

   

    if (res.types(0) == typeid(string))

      cout << "Field ''''item'''' is of an sql type which most closely resembles a\n"

          << "the c++ string type\n";

    // this is demonstrating how a mysql_type_info can be compared with a c++

    // type_info.

 

    if (res.types(1) == typeid(longlong))

      cout << "Field ''''num'''' is of an sql type which most closely resembles a\n"

          << "the c++ long long int type\n";

    else if (res.types(1).base_type() == typeid(longlong))

      cout << "Field ''''num'''' base type is of an sql type which most closely \n"

          << "resembles a the c++ long long int type\n";

    // However you have to be careful as if it can be null the actual type is

    // Null<TYPE> not TYPE.  So you should always use the base_type method

    // to get at the underlying type.  If the type is not null than this base

    // type would be the same as its type.

   

    return 0;

  } catch (BadQuery er) {

    cerr << "Error: " << er.error << endl;

    return -1;

  } catch (BadConversion er) { // handle bad conversions

    cerr << "Error: Tried to convert \"" << er.data << "\" to a \""

        << er.type_name << "\"." << endl;

    return -1;

  }

}

上一页  [1] [2] [3] [4] [5] 

打印本文 打印本文 关闭窗口 关闭窗口