-1

sqlite でデータベースを作成する方法を教えてください。sqlite +c++ でテーブルを作成してデータを挿入する方法を教えてください。理解できる。

4

1 に答える 1

0

これが私がそれを行う方法です:

char *sql;
int rc = 0;

File *fptr_db = new File(DBPath);

if(fptr_db->existsAsFile())
{

} else {
    sqlite3_initialize( );
    rc = sqlite3_open_v2( DBPath.toRawUTF8(), &pDb, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL );
    if ( rc != SQLITE_OK) {
        sqlite3_close( pDb );
        exit( -1 );
    }
    sql = "CREATE TABLE IF NOT EXISTS Users (Id integer PRIMARY KEY NOT NULL, GroupId integer NOT NULL, Name VARCHAR(40) NOT NULL COLLATE NOCASE, Password VARCHAR(200) COLLATE NOCASE, Address VARCHAR(200) COLLATE NOCASE, PostalCode VARCHAR(20), Vat VARCHAR(30), BI INT, LastSale DATE, Limits DECIMAL(12,6), Commission DECIMAL(12,6), BirthDate DATE, Phone VARCHAR(20), MobilePhone VARCHAR(20), Email VARCHAR(200) COLLATE NOCASE, Obs VARCHAR, DefaultSerieId integer NOT NULL ); ";
    rc = sqlite3_prepare_v2( pDb, sql, -1, &query, NULL );
    if ( rc != SQLITE_OK) exit( -1 );
    rc = sqlite3_step( query );
    if ( rc != SQLITE_DONE ) exit ( -1 );

    sql = "INSERT INTO [Users] ([Id], [GroupId], [Name], [Password], [DefaultSerieId]) VALUES (1, 0, 'Paulo', '1234', 0)";
    rc = sqlite3_prepare_v2( pDb, sql, -1, &query, NULL );
    if ( rc != SQLITE_OK) exit( -1 );
    rc = sqlite3_step( query );
    if ( rc != SQLITE_DONE ) exit ( -1 );

    sql = "INSERT INTO [Users] ([Id], [GroupId], [Name], [Password], [DefaultSerieId]) VALUES (2, 0, 'Antonio', '', 0)";
    rc = sqlite3_prepare_v2(pDb, sql, -1, &query, NULL);
    if (rc != SQLITE_OK) exit(-1);
    rc = sqlite3_step(query);
    if (rc != SQLITE_DONE) exit(-1);

    sqlite3_finalize( query );

    sqlite3_close( pDb );
    sqlite3_shutdown( );
}

うまく機能します。DBPath は、データベースのパスを含む文字列であり、名前で確定されます。例: String DBPath = "C:\database.db";

パウロ

于 2014-01-11T09:23:32.500 に答える