1

sqliteネイティブ インターフェイスを使用して単純なクエリ (ドロップ テーブル) を実行したいのですがSQLITE_ERROR、ステートメントを準備しようとすると、何度も遭遇します。文字列の互換性を恐れていたので、すべてを試しました(qt文字列は時々苦痛になる可能性があります)が、常に同じコードが次のようになります。

    sqlite3_stmt *query;
    std::string tmp = "DROP TABLE ?";
    if(sqlite3_prepare_v2(db, tmp.c_str(), tmp.size(), &query, NULL) != SQLITE_OK)return     FALSE;
    if(sqlite3_bind_text16(query, 1, str.utf16(), -1, SQLITE_TRANSIENT) != SQLITE_OK) return FALSE;
    if(sqlite3_step(query) != SQLITE_OK) {
      std::cerr << sqlite3_errmsg(db);
      return FALSE;
    }
    sqlite3_finalize(query);

誰かが助けてくれることを心から願っています。

4

1 に答える 1

1

テーブル名をパラメーターとして渡すことはできません(パラメーターをサポートするほとんどのデータベースAPI、場合によってはすべてのデータベースAPIに適用されます)。

于 2013-01-21T17:45:08.900 に答える