-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()文字列ではなく を返し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 に答える