2012-02-24 7 views
0
//================================================================== 
    - (BOOL) addNewSimpleTemplates:(NSString*)dbPath:(NSString*)title{ 
    //================================================================== 

    BOOL returnVal = NO; 

    NSString *maxValuePosition; 

    if (sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK) 
    { 
    NSString *selectSQL = [NSString stringWithFormat:@"select MAX(pr.position) FROM phrase_reference pr inner join storyboard_main_categories smc on smc.id = pr.main_category_id where smc.category_name = %@", @"'Simple Templates'"]; 

    const char *sql = [selectSQL UTF8String]; 

    sqlite3_stmt *selectStmt; 

    if(sqlite3_prepare_v2(database, sql, -1, &selectStmt, NULL) == SQLITE_OK){ 

     while(sqlite3_step(selectStmt) == SQLITE_ROW) 
     {  
     /// 
      // how to use finalise when using sqlite3_prepare_v2 

      char *localityChars = (char*)sqlite3_column_text(selectStmt, 0); 
     if (localityChars == NULL) 
      maxValuePosition = nil; 
      else 
     maxValuePosition = [NSString stringWithUTF8String: localityChars]; 

     // increment the postion value 
     int postion = [maxValuePosition intValue] + 1; 

     //saving a new simple phrase is started here 
     sql = "insert into storyboard_phrases(phrase) Values(?)"; 

     selectStmt = nil; 

       if(sqlite3_prepare_v2(database, sql, -1, &selectStmt, NULL) == 
       SQLITE_OK){ 
       sqlite3_bind_text(selectStmt, 1, [title UTF8String], -1, 
        SQLITE_TRANSIENT); 
      } 

      if(sqlite3_step(selectStmt) != SQLITE_DONE) { 

       NSLog(@"Error: %s just here itself", sqlite3_errmsg(database)); 

      } else { 
       NSLog(@"Insert into row id = %d", 
        sqlite3_last_insert_rowid(database)); 
       } 
     /// 
     } 
    } 

sqlite3_finalize(selectStmt); 

} 
    sqlite3_close(database); 

} 

私はどのように使用するか知りたいと思います。何回sqlite3_prepare_v2を複数回使用するとsqlite 3 finalize文を置くことができますか?私はsqlite3 finalizeステートメントを2回使用する必要がありますか?

私の上記の方法では、私はsqlie3を使用してv2の文を2回準備するので、sqlite3を使用する必要がありますか?

のplsは私はあなたがnilに設定する前に、あなたは間違いなくselectStmtsqlite3_finalizeを呼び出す必要が

答えて

関連する問題