2013-10-29 42 views

回答

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」;

Paulo

相關問題