1

以下は、ベクタープッシュバックを取得しようとしたものであり、今欠けているのは、それを文字列に割り当てることです:

#include <iostream>
#include <sqlite3.h>
#include <vector>

using namespace std;

int main()
{

    sqlite3 *db;
    sqlite3_stmt * stmt;
    std::vector< std::vector < std:: string > > result;
    for( int i = 0; i < 4; i++ )
        result.push_back(std::vector< std::string >());

    if (sqlite3_open("abeserver.db", &db) == SQLITE_OK)
    {
        sqlite3_prepare( db, "SELECT * from abe_account;", -1, &stmt, NULL );
                              //preparing the statement
        sqlite3_step( stmt ); //executing the statement

        while( sqlite3_column_text( stmt, 0 ) )
        {
            for( int i = 0; i < 4; i++ )
                result[i].pushback( std::string( (char *)sqlite3_column_text( st, i ) ) );
            sqlite3_step( stmt );
        }

    }
    else
    {
        cout << "Failed to open db\n";
    }

    sqlite3_finalize(stmt);
    sqlite3_close(db);

    return 0;
}

以下は、sqlite での私のデータベースの外観です。

sqlite> select * from abe_account;
admin|Peter John|admin_account|password

SQL selectステートメントを使用して値「admin」と「password」を一緒に取得し、それらを文字列に割り当てたいのですが、ベクトルを使用してこの要素[0]と要素[3]を文字列に取得するにはどうすればよいですか。後で if compareTo に必要なので。

助けてくれてありがとう!!

4

1 に答える 1

0

あなたはすでに文字列をベクトルのベクトルに押し込んでいます。同じ列値を表す各行としてベクトルを編成したので、レコードの文字列が必要なr場合は、次のようにします。

std::string username = result[0][r];
std::string password = result[3][r];
于 2012-08-13T16:28:56.210 に答える