2011-06-18 9 views
0

こんにちは、このコードを書いてデータベーステーブルに新しいエントリを追加しました。しかし、実行中は、テーブルが見つからないというメッセージが表示されます。 このコードで間違いが見つかると助けてください。sqliteデータベーステーブルに新しいエントリを追加

char *sqlStatement; 
sqlite3 *pDb; 
char *errorMsg; 
ןnt returnCode; 
char *databaseName; 
databaseName = "Child.db"; 
returnCode = sqlite3_open(databaseName, &pDb); 
if(returnCode!=SQLITE_OK) { 
    fprintf(stderr, "Error in opening the database. Error: %s", 
      sqlite3_errmsg(pDb)); 
    sqlite3_close(pDb); 
    return; 
} 
else{ 
    NSLog(@"Open Sucessful"); 
} 

//sqlStatement = sqlite3_mprintf("INSERT INTO childname VALUES" 
//        " ('%s')",[strTxtFldValue cString],"childname"); 
sqlStatement = sqlite3_mprintf("INSERT INTO childname VALUES ('%s')",strTxtFldValue); 
NSLog(@"sqlStatement....%c",sqlStatement); 
returnCode = sqlite3_exec(pDb, sqlStatement, 0, 0, &errorMsg); 
NSLog(@"return code %d",returnCode); 
if(returnCode!=SQLITE_OK) { 
    fprintf(stderr, 
      "Error in inserting into the stocks table. Error: %s", errorMsg); 
    sqlite3_free(errorMsg); 
} 
else{ 
    NSLog(@"inserted"); 
} 
sqlite3_free(sqlStatement); 
+0

a)* childname *はテーブル名ですか? b)* strTxtFldValue *は* C文字列*または* NSString *ですか? – EmptyStack

+1

その名前のテーブルを作成してもよろしいですか?またはデータベースをドキュメントディレクトリにコピーしましたか? –

答えて

0

sqliteソフトウェアから同じ挿入クエリを実行すると、同じ結果が得られます。だからあなたのアプリにテーブル名を与えることに間違いがあるかもしれません。または間違ったデータベース名を与えている可能性があります...

+0

@EmptyStack a)childnameはテーブル名です.b)cString部分はコードにコメントされています。しかし、strTextFldValueはNSStringではありません。cString @Rahulデータベースの参照をコピーしていません。 @ Gauravは端末を使用してテーブルにデータを挿入できます。 – user804417

1

@ user804417どのようにデータベーステーブルを作成していますか? uを手作業で作成してからresouceフォルダにデータベースファイルを追加すると、シミュレータで動作するかもしれませんが、デバイス上でアプリケーションを実行すると問題が発生する可能性がありますので、エラーが発生する可能性があります。NO TABLE FOUND

これを解決するには、アプリケーションを停止するときにアプリケーションを使用してデータベースを作成しようとすると、問題が解決されるはずです。

2

ランタイムデータベースを作成してください。

sqlite3_exec(database, 
       "CREATE TABLE IF NOT EXISTS PersonalDetailsTbl (ID INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,email TEXT,phoneNo TEXT,DOB TEXT,spouseName TEXT,aniversaryDate TEXT)", 
       NULL, NULL, NULL); 

sqlite3_exec(database, [[NSString stringWithFormat: 
         @"INSERT INTO PersonalDetailsTbl VALUES(NULL, '%@','%@','%@','%@','%@', '%@')", 
         name,email,phoneNo,DOB,spouseName,aniversaryDate] 
         UTF8String], 
      NULL, NULL, NULL); 
関連する問題