2011-12-26 2 views
0

Обновление запроса на sqlite3 Не работаетОбновление запроса на sqlite3 не работает

-(void)updateAlarms:(AlarmsBean *)todoItem//TodoItem: (AlarmsBean*)todoItem 
{ 
    if (_updateAlarmsStatement == NULL) 
    { 
    sqlite3_prepare_v2(_database, 

    "UPDATE AlarmSetting SET Sound = ?, Sensitivity = ?, Label = ? , Repeat = ? , 
time = ? , On_Off = ? WHERE ID = ?", 
          -1, 
          &_updateAlarmsStatement, 
          NULL); 
    } 
    sqlite3_reset(_updateAlarmsStatement); 
    sqlite3_bind_text(_updateAlarmsStatement, 1, 
[todoItem.AlarmSoundName UTF8String], -1, SQLITE_TRANSIENT); 
    sqlite3_bind_int(_updateAlarmsStatement, 2, todoItem.AlarmSensitivity); 
    sqlite3_bind_text(_updateAlarmsStatement, 3, [todoItem.AlarmName UTF8String], -1, 
SQLITE_TRANSIENT); 

    sqlite3_bind_int(_updateAlarmsStatement, 4, todoItem.AlarmRepeat); 

    sqlite3_bind_text(_updateAlarmsStatement, 5, [todoItem.AlarmTime UTF8String], -1, 
SQLITE_TRANSIENT); 

    sqlite3_bind_int(_updateAlarmsStatement, 6, todoItem.AlarmOnOff); 
    sqlite3_bind_int(_updateAlarmsStatement, 7, todoItem.AlarmID); 
    sqlite3_step(_updateAlarmsStatement); 
} 

В другом классе:

AlarmsBean * todoItem1 = [[AlarmsBean alloc] init]; 

database = [[ClassAlarmDB alloc] init]; 

      todoItem1.AlarmID = 1 ; 
      todoItem1.AlarmSoundName = @"28.png"; 
      todoItem1.AlarmSensitivity = 1 ; 
      todoItem1.AlarmName = @"ahmad" ; 
      todoItem1.AlarmRepeat = 1; 
      todoItem1.AlarmTime = @"00 : Am"; 
      todoItem1.AlarmOnOff = 4 ; 
       NSLog (@"Befor Update"); 
      [database updateAlarms: todoItem1]; 

Но база данных не обновляется.

+2

Какое сообщение об ошибке? У вас уже есть строка с 'id == 1' в этой таблице? – Mat

+0

yes У меня есть строка id = 1, но нет сообщения об ошибке, а DataBasa не обновляется – Ahmad

+0

где хранится ваш файл базы данных на устройстве? – marcus

ответ

0

Проверьте код возврата с sqlite3_step(..) и, возможно, также sqlite3_prepare_v2(..). Если это не SQLITE_OK или SQLITE_DONE, распечатать sqlite3_errcode(_database) и sqlite3_errmsg(_database).

Это должно дать вам некоторую информацию для продолжения.

+0

вся инструкция истинна - но база данных не обновляется – Ahmad

+0

Что вы подразумеваете под «истиной»? – ergosys