2011-03-23 44 views
0

我無法執行sqlite3_prepare_v2。當我調試程序時,程序打開數據庫,然後進入sqlite3_prepare_v2。當我點擊繼續時,它會出現,如果循環&控制轉移到最終語句。這裏是我的代碼無法執行sqlite3_prepare_v2

sqlite3 * database;

if(sqlite3_open([db_path UTF8String], &database)==SQLITE_OK) 
{ 

    sqlite3_stmt * compiledstatement; 

    sqlstmt = @" my select sql query"; 

    if(sqlite3_prepare_v2(database, sqlstmt, -1, &compiledstatement,NULL)==SQLITE_OK) 

    { 

     while(sqlite3_step(compiledstatement)==SQLITE_ROW) 

     { 

      // select query logic 


     } 

    } 

    sqlite3_finalize(compiledstatement); 

} 

sqlite3_close(database); 
+0

哪個[錯誤代碼](http://www.sqlite.org/c3ref/c_abort.html)返回? – sarnold 2011-03-23 10:55:40

+0

我沒有收到任何錯誤代碼。 – iOSAppDev 2011-03-24 12:47:24

回答

2

sqlstmt是在你的代碼一個NSString。它應該是一個C字符串。變化

if (sqlite3_prepare_v2(database, sqlstmt, -1, &compiledstatement,NULL)==SQLITE_OK) 

if (sqlite3_prepare_v2(database, [sqlstmt **UTF8String**], -1, &compiledstatement,NULL)==SQLITE_OK)