본문 바로가기
[android] SQLiteDatabase 와 SQLiteOpenHelper Test [android] SQLiteDatabase 와 SQLiteOpenHelper Test -DB File delete 를 수행한 다음 getWritableDatabase 나 getReadableDatabase 를 호출하면 SQLiteOpenHelper 의 onCreate 가 재수행된다. (DB file 의 실 존재 유무를 확인한다는 얘기렸다?) -이미 Close 된 DB 에 뭔가를 수행하려 한다면 아래와 같은 IllegalStateException 이 발생한다java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: /data/user/0/com.ck.prodtest/databases/myDB -b.. 2019. 1. 10.
[SQLite3] 05. SQLite3 C API 고급 [SQLite3] 05. SQLite3 C API 고급 이 글은 "빠르게 활용하는 모바일 데이터베이스 SQLite3” 이란 글을 보며 필요한 내용만 정리한 글입니다.자세한 내용은 책을 구매해서 보세요 1. 잠금 상태 확인 - sqlite3_busy_handler() -하나의 스레드나 프로세스에서 exclusive lock 을 걸고 있는 상태에서 다른 스레드나 프로세스가 잠금을 획득하려고 하면 에러가 발생한다.이 때 sqlite3_busy_handler() 함수를 이용하면 에러가 발생하지 않고 동기화를 진행할 수 있게 추가적인 처리를 위한 콜백 함수를 등록할 수 있다.int sqlite3_busy_handler(sqlite3*, int(*)(void*, int), void*); lock 을 잡을 수 없을 .. 2018. 5. 21.
sqlite 의 transaction mode 와 lock 의 종류 특성. sqlite 의 transaction mode 와 lock 의 종류 특성. - Transaction 은 deffered, immediate, exclusive 3가지 모드로 진행될 수 있다. - 기본 transaction 은 deffered 이다. - DEFFERED 의 lock 이 모드일 때 database 에 실질적인 action 이 있기 전까지는 lock 을 잡지 않는다. DB 에 read action 이 생기면 SHARED lock 이 걸린다. 반대로 DB 에 첫 write action 이 생기면 RESERVED lock 이 걸린다. - IMMEDIATE 의 lock 이 모드일 때는 begin 명령이 떨어지자마자 RESERVED lock 을 걸어버린다. 이 상태에서는 BEGIN IMMEDIATE .. 2014. 8. 31.
반응형