2012-02-13 6 views
1

上のシミュレータで動作しますが、ない私は1つの変数を呼び出して渡すSQLiteのコードです。問題はどこですか?SQLiteの挿入は、ここでは、デバイス

-(IBAction)insertPet:(NSString *) name{ 

NSString *query = [NSString stringWithFormat:@"Insert into pet (name) values ('%@');", name]; 
sqlite3_stmt *statement; 

NSLog(@"1 - %@",query); 

if(sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil)==SQLITE_OK) 
{ 

    NSLog(@"2 - %@",query); 

    if(SQLITE_DONE == sqlite3_step(statement)){ 

     NSLog(@"Query - %@",query); 
    } 
    sqlite3_finalize(statement); 
} 
} 
+0

のNSLog(@ " - 1%の@"、クエリ)とのNSLog(@ " - 2%の@"、クエリが)throughtを渡します。 NSLog(@ "Query - %@"、query)に届きます。あなたは、エラーメッセージが何であったか... – ksprs8

+0

それは大いに役立つでしょうか? –

答えて

0

あなたのデータベースはアプリケーションバンドルに配置されていると思います。そのような場合、あなたは(INSERTやUPDATEなど)のデータベースを変更するクエリを実行できるようにするには、データベースの書き込み可能なコピーを作成する必要があります。これを行う最も一般的な方法は、バンドルからドキュメントフォルダにデータベースをコピーすることです。

+0

あなたがこれを行う方法のいくつかのコード/アドバイスを与えることができます私たちに語った場合 – Richard

+0

確かに、使用[NSFileManager方法](https://developer.apple.com/library/mac/documentation/cocoa/reference/foundation/Classes/NSFileManager_Class/Reference/Reference.html#//apple_ref/occ/instm/NSFileManager/copyItemAtPath:toPath:エラー:)をコピーします。ドキュメントのパスを取得するには[ここ](http://stackoverflow.com/questions/5508433/using-nssearchpathfordirectoriesindomains-properly) – lawicko

0

何私のために働いたことは、あなたのデバイスからアプリを削除して、デバイスを再起動し、再度それをロードXcodeでアプリをきれいに、またターゲット会員がデータベース上で選択されていることを確認してください。

関連する問題