2013-03-19 111 views
0

我想在向量中插入我的表中变量的名称和类型。我使用的语言是C++。C++ mysql_fetch_field获取变量名称和类型

这里是我的代码:

std::vector<std::string> parameters; 
    std::vector<std::string> types; 
    request = "select * from " + table; 
    //cout << request << endl; 
    if(mysql_query(connection, request.c_str())){ 
    fprintf(stderr, "Impossible to get parameters: %s\n", 
     mysql_error(connection)); 
    return EXIT_FAILURE; 
    } 
    result = mysql_store_result(connection); 
    while (field_mysql=mysql_fetch_field(result)) { 
     parameters.push_back(field_mysql->name); 
     types.push_back(field_mysql->type); 
     } 

    for(vector<string>::iterator it = parameters.begin(); it != parameters.end(); it++) 
     cout << *it << endl; 
    mysql_free_result(result); 

我得到了错误:

呼叫到std :: vector的<的std :: basic_string的<焦炭> ::的push_back(enum_field_types没有匹配的功能&)'

我想我得到这个错误,因为类型是整数,我声明它为字符串,但我不确定。

+0

是的,这就是原因。您可以通过实现将枚举转换为字符串的函数来修复它,也就是说,如果您的目标是打印它。 – didierc 2013-03-19 16:24:12

回答

0

“我想是因为类型是整数,并且i声明为字符串,但我不知道我得到这个错误。”

你是绝对正确的。只需将类型作为整数的容器,就可以解决问题。