2013-03-19 107 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聲明爲字符串,但我不知道我得到這個錯誤。」

你是絕對正確的。只需將類型作爲整數的容器,就可以解決問題。