我在同一個數據庫上有兩個表。在sqlite3的同一個數據庫上的插入語句不起作用iphone
對於第一表的數據被成功插入使用以下代碼:如我登錄
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *databasePath = [documentsDirectory stringByAppendingPathComponent:@"test.sqlite"];
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
(sqlite3_exec(database, "BEGIN TRANSACTION", 0, 0, 0))==SQLITE_OK
if (sqlite3_exec(database, [insertStatement UTF8String], NULL, NULL, &error) == SQLITE_OK)
{
NSLog(@"------- inserted here ----");
}
else
{
NSLog(@"Error: %s", error);
if(sqlite3_exec(database, "COMMIT", 0, 0, 0) ==SQLITE_OK){
NSLog(@"-------data sucessfully inserted ");
}
else {
NSLog(@"-------data insertion failed");
sqlite3_exec(database, "ROLLBACK", 0, 0, 0);
}
(sqlite3_exec(database, "END TRANSACTION", 0, 0, 0));
sqlite3_close(database);
}
else {
NSLog(@"-------sqlite open error ");
}
的數據被成功插入。
但是,當我使用相同的代碼插入到第二個表,沒有數據插入我得到登陸
NSLog(@"-------data insertion failed")
我也開,並在每個操作關閉數據庫和釋放手柄。
我認爲SQLite不允許我寫數據庫,但不明白爲什麼?因爲我已經用較早的操作關閉了數據庫。
是否有人在同一個數據庫文件的第二個表沒有數據插入時遇到同樣的問題。
Addt注意:沒有語法錯誤,如果我沒有插入第一張桌子上,那麼在第二張桌子上插入是很奇怪的。
檢查查詢?無論是否合適。 – Krunal 2012-08-17 12:42:48