2012-03-10 2 views
2

У меня есть проблемы с установкой и получение кодавставки в SQLite

Там нет ошибки времени выполнения, но вставки данных не работает, а код при получении извлекает только последнюю запись из БД.

Лучше использовать NSString или NSMutableString?

NSLog(@"test"); 

NSString *sql1 = [NSString stringWithFormat:@"INSERT INTO User Values (2,'%@','','F','123','','','','','A','B','123','123',2)",name.text]; 

char *err; 
sqlite3_exec(database, [sql1 UTF8String], NULL, NULL, &err)!= SQLITE_OK ; 
const char *sql = "select * from User"; 

     sqlite3_stmt *searchStatement; 
     if (sqlite3_prepare_v2(database, sql, -1, &searchStatement, NULL) == SQLITE_OK) 
     { 

      while (sqlite3_step(searchStatement) == SQLITE_ROW) 
      { 


       char * try = (char*)sqlite3_column_text(searchStatement, 1); 
       if (try){ 
       item = [NSMutableString stringWithUTF8String:try]; 

       } 
       else{ 

       item = @""; 
       } 

ответ

1

Проблема, похоже, находится в вашем поисковом коде. Методы sqlite3_column_type используют индексирование с нулевым индексом, но похоже, что вы начинаете с позиции 1. Таким образом, каждый раз, когда вы переходите, вы не извлекаете необходимую информацию. Я не уверен, почему вы получаете последний элемент, но попробуйте перейти от позиции 0 и посмотреть, поможет ли это.

Смежные вопросы