2012-08-06 2 views
0

나는 아이폰 응용 프로그램에서 내 SQLite 데이터베이스에 값을 삽입하기 위해 노력하고있어,하지만 성공 :아이폰 - SQLite 데이터베이스에 삽입 값은

insertSQL = [NSString stringWithFormat: @"INSERT INTO eventslist (date, title, description) VALUES ('%@', '%@', '%@')", dateString, title, descr]; 
const char *insert_stmt = [insertSQL UTF8String]; 
sqlite3_prepare_v2(eventsDB, insert_stmt, -1, &statement, NULL); 

descr 변수는 특수 문자, 새로운 라인을 텍스트 조각을 포함 나는 그 이유라고 생각합니다. 어떻게 해결할 수 있습니까?

답변

4
+(void)CheckConnection 
{ 
    NSArray *docpath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *docdir = [docpath objectAtIndex:0]; 
    dbpath=[docdir stringByAppendingPathComponent:databasename]; 
    BOOL success; 
    NSFileManager *fm = [NSFileManager defaultManager]; 
    success=[fm fileExistsAtPath:dbpath]; 
    if(success) 
    { 
     return; 
    } 
    NSString *dbPathFromApp = [[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:databasename]; 
    [fm copyItemAtPath:dbPathFromApp toPath:dbpath error:nil]; 
} 

+(BOOL)Savedata:(NSDictionary*)dicval 
{ 
    [self CheckConnection]; 
    BOOL sucsess; 
    sqlite3 *database; 

    if (sqlite3_open([dbpath UTF8String], &database)==SQLITE_OK) { 
     NSString *query=[NSString stringWithFormat:@"insert into emp_info values(NULL,'%@','%@','%@','%@')",[dicval valueForKey:@"name"],[dicval valueForKey:@"surname"],[dicval valueForKey:@"mobile_no"],[dicval valueForKey:@"city"]]; 
     const char *sqlStmt=[query UTF8String]; 
     sqlite3_stmt *cmpSqlStmt; 
     int rv=sqlite3_prepare_v2(database, sqlStmt, -1, &cmpSqlStmt, NULL); 

     sucsess=((rv ==SQLITE_OK)? YES : NO); 
     sqlite3_step(cmpSqlStmt); 
     sqlite3_finalize(cmpSqlStmt); 
    } 
    sqlite3_close(database); 
    return sucsess; 

} 
1

이 링크 포함 데이터베이스에서 데이터 생성, 삽입 및 검색, 도움이 될 수 있습니다.

Creating an SQLite3 database file through Objective-C

먼저 데이터베이스를 만들고 엽니 다. 그런 다음 데이터베이스에 데이터를 삽입하십시오.

0
if(sqlite3_open([databasePath UTF8String],&db) == SQLITE_OK) 
{ 
    insertSQL = [NSString stringWithFormat: @"INSERT INTO eventslist (date, title, description) VALUES ('%@', '%@', '%@')", dateString, title, descr]; 

    char *errmsg=nil; 

    if(sqlite3_exec(db, [insertSQL UTF8String], NULL, NULL, &errmsg)==SQLITE_OK) 
    { 
     NSLog(@"Row Inserted"); 
    } 
} 
sqlite3_close(db); 
관련 문제