2012-10-25 4 views
-1

내 sqlite 데이터베이스를 업데이트하는 데 문제가있어서 누군가 도움이된다면 매우 감사하게 생각합니다. 나는 가능한 모든 예제와 튜토리얼로 시도했지만 아무것도하지 않았다. 내 sqlite 테이블에서 9 속성이 있지만 세 가지만 업데이트해야합니다.Xcode 업데이트 Sqlite 레코드

const char *sql = "UPDATE studentNotes SET title = ? , note = ? , existingAudioNote = ? , audioNoteName = ? , audioNoteDuration = ? , existingPdf = ? , pdfFileName = ? WHERE id = ?"; 

if(sqlite3_open([[AppDelegate getDatabasePath]UTF8String], &database) == SQLITE_OK){ 

    if (sqlite3_prepare_v2(database, sql, -1, &updateStmt, NULL) != SQLITE_OK){ 
     NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database)); 
    } 
    else { 

     sqlite3_bind_text(updateStmt, 1, [noteTitle UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 2, [noteText UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 3, [noteExistingAudioNote UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 4, [noteAudioName UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 5, [audioNoteDuration UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 6, [existingPdf UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 7, [pdfFileName UTF8String], -1, SQLITE_TRANSIENT); 
     if (SQLITE_DONE != sqlite3_step(updateStmt)){ 
      NSAssert1(0, @"Error while updating data. '%s'", sqlite3_errmsg(database)); 
     } 


     sqlite3_reset(updateStmt); 
    } 
} 
sqlite3_close(database); 

이 코드로 시도했지만이 클래스를 뷰에서 호출하면 작동하지 않습니다. 어떤 아이디어?

+0

[sqlite3 업데이트가 ios에서 작동하지 않음] (http://stackoverflow.com/questions/12439751/sqlite3-update-not-working-in-ios) 및 그 이상의 이유가 무엇인지 상상할 수 없습니다. 게시하기 전에 Google 검색을하는 것이 어렵습니다. –

+0

"나던 일"보다 좀 더 구체적 일 수 있습니까? –

+0

레코드를 업데이트하려고하면 아무 것도하지 않습니다. 오류가 표시되지 않습니다. 그것이하는 유일한 일은 같은 기록을 다시 기록하는 것입니다. addObject에서 appdelegate의 문제가 발견되었습니다. 나는 Coffe 튜토리얼을 사용해 보았지만 아무 것도하지 않았다. 유일하게 생각하는 것은 그것이 id라는 것을 얻지 못한다는 것입니다. – dsafa

답변

1

UPDATE 명령에는 8 개의 매개 변수가 있지만 처음 7 개만 설정합니다. 마지막 매개 변수는 여전히 무엇을 실행 도착하는 것을 의미 기본값이 있습니다 : (NULL=과 비교 될 수 없기 때문에) 어떤 기록과 일치하지 않는

UPDATE ... WHERE id = NULL 

합니다.

+0

update 문을 편집하려고 시도하지만이 메서드를 호출하기 가장 좋은 곳이 무엇인지 말해 줄 수 있습니까? 직접 버튼이나? 내가 AppDelegate에서 생성했기 때문에 - (void) updateRecord : (NotesMainClass *) notesObject {[notesObject updateData]; [notesDatabase addObject : notesObject]; – dsafa