내 iPhone 응용 프로그램에서 Sqlite3을 사용하고 있습니다. 임의로 몇 가지 원하지 않는 롤백이 발생했습니다. 그러나 이것이 내가 sqlite3_finalize
으로 진술을 마무리하지 않았다는 사실과 관련이 있는지는 알 수 없습니다. 내가 알기로는 sqlite3_exec
이 처리합니다.sqlite3_exec로 쿼리를 수행 한 후에 sqlite3_finalize를 사용해야합니까?
또한 sqlite3_prepare_v2
으로 일부 SELECT를 찾았으므로이 항목을 마무리해야한다는 것을 알고 있으므로 sqlite3_exec
과 동일한 작업을 수행해야합니까? 내 문
한 예는 다음과 같습니다
NSString *[email protected]"UPDATE books SET title='newName' WHERE id='21';";
if ((result=sqlite3_open([database UTF8String], &_database))==SQLITE_OK) {
result=sqlite3_exec(_database, [query UTF8String],NULL,NULL,&errorMsg);
if (result!=SQLITE_OK) {
printf("\n%s",errorMsg);
sqlite3_free(errorMsg);
}
sqlite3_close(_database);
}
할까요 I sqlite3_finalize(result)
데이터베이스를 닫기 전에? sqlite3_finalize()
기능이 sqlite3_prepare_v2()
또는 관련 기능을 사용하여 만든 준비된 문을 삭제 호출되기 때문에 당신은 필요가 없습니다