-1

我在 xcode 中收到错误说:

No viable overload '='

我正在尝试遍历一些代码,但它不起作用。

下面是代码:

string query;
query = "select name from A;";
sqlite3_stmt *sqlstmt;
if(SQLITE_OK != sqlite3_prepare16_v2(db, query.c_str(),0, &sqlstmt,0)){
   sqlite3_close(db);
   return -1;
}
while(sqlite3_step(sqlstmt) == SQLITE_ROW){
  string name;
  name = sqlite3_column_text16(sqlstmt, 1);  //<--errors
  cout << name << endl;
}

编辑:我添加了查询

4

1 回答 1

2

sqlite3_column_text16()返回 a void const *,而不是字符串。试试这个:

string name(static_cast<char const *>(sqlite3_column_text16(sqlstmt, 1)));

请注意,*16 系列函数使用 UTF-16,因此这不太可能适用于标准字符串;您必须使用宽字符串或非 16 变体:

string name(static_cast<char const *>(sqlite3_column_text(sqlstmt, 1)));
于 2012-11-19T16:16:58.377 回答