0

この関数を呼び出して、最初にすべてのデータを削除してから、更新された値を挿入します。しかし、すべてのテーブルがデータベースから削除される方法がいくつかあります。常にalertviewコードからの情報が表示されます。何が間違っているのかわかりません。ありがとうございました..

 -(void)fillDate
{

 filemgr=[NSFileManager defaultManager];
 NSString *querySQL = @"delete from getdate";

 const char *dbpath = [[appDelegate getDBPath] UTF8String];

 //NSLog(@"path= %@",dbpath);
 BOOL flag=FALSE;
 if (sqlite3_open(dbpath, &dtdb) == SQLITE_OK)
 {
 //"open";
 const char *query_stmt = [querySQL UTF8String];
 sqlite3_prepare_v2(dtdb,query_stmt,-1,&statement,NULL);

 if (sqlite3_step(statement)==SQLITE_DONE)
 {

 //table deleted
 flag=TRUE;

 }
 else
 {

 UIAlertView *d=[[UIAlertView alloc]initWithTitle:@"Message" message:@"Your Table does not deleted" delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil];
 [d show];
 flag=FALSE;

 }

 }
 else
 {
 //"can't open";

 }

 sqlite3_close(dtdb);
 sqlite3_finalize(statement);

 if (flag)
 {
 sqlite3_stmt *stmt;
 const char *cdbpath=[[appDelegate getDBPath] UTF8String];
 if ((sqlite3_open(cdbpath,&dtdb)==SQLITE_OK))
 {


 char* errorMessage;
 sqlite3_exec(dtdb, "BEGIN TRANSACTION", NULL, NULL, &errorMessage);

 char buffer[] = "INSERT INTO getdate(lastdate) VALUES (?1)";


 sqlite3_prepare_v2(dtdb, buffer, strlen(buffer), &stmt, NULL);


 // for (unsigned i = 0; i < 1; i++)
 // {
 //  NSMutableDictionary *dict=[arrayAllEvents objectAtIndex:i];
 //NSLog(@"dict:%@",dict);
 sqlite3_bind_text(stmt, 1, [[df stringFromDate:[NSDate date]]UTF8String], -1, SQLITE_STATIC);


 int success = sqlite3_step(stmt);
 sqlite3_reset(stmt);
 if (success != SQLITE_DONE)
 {
 //nslog(@"error: %s",sqlite3_errmsg(dtdb));
 }

 //nslog(@"... data created.");
 // }///for

 if(sqlite3_exec(dtdb, "COMMIT TRANSACTION", NULL, NULL, &errorMessage)==SQLITE_OK)
 {
 NSLog(@"commited Events");
 }
 else
 {
 NSLog(@"Not commited");
 }
 // sqlite3_exec(dtdb, "COMMIT TRANSACTION", NULL, NULL, &errorMessage);
 sqlite3_finalize(stmt);
 }//

 }

 sqlite3_close(dtdb);


}
4

1 に答える 1

2

データベースを更新した場合は、新しいデータベースを古いデータベースに置き換えるだけです。アプリを削除して、もう一度実行してください。あなたのコードは完璧なようです。

于 2013-11-08T10:04:10.497 に答える