안녕하세요,

ContentProvider 를 상속받아서 하나 구현해놓고 잘 쓰고 있었는데..
여기저기 찾다보니 ContentProvider 를 사용하면 직접 트랜잭션은 걸지 못한다고 나오더군요;

한번에 약 20~30개정도의 데이터를 업데이트 하는데, 이때 사용자가 취소하는 시나리오가 필요해서
어쩔수 없이 ContentProvider 대신 execSQL 구문으로 직접 쿼리를 날려서 Insert 또는 Update를 하도록 구현하였습니다.
(직접 날리는 SQL에서는 beginTransaction 이 가능하다고 하더라구요)

그리고, 가져다 쓰는 액티비티들만 ContentProvider 를 이용해서 구현하였는데,...
이게 갑자기 동작을 안하네요..-_-;;;

처음에 업데이트 하는애가..
트랜잭션 걸고.. Insert 나..update를 수행하고.. Commit또는 rollback 하고.. 그리고 화면 클릭하면..
액티비티가 뜨면서 ContentProvider 를 통해서 데이터를 가져와서 뿌려주는 구조인데..

원래 ContentProvider에 구현해놓은 insert나 update 를 사용해서 구현했을때는 액티비티에서 ContentProvider에 구현해놓은
query문이 정상 동작 했었는데,
이걸 전부 execSQL 로 바꿔서 수행했더니..  ContentProvider에 구현해놓은 query 구문이 갑자기 동작을 안하네요.

호출까진 정상적으로 되는데, cursor로 가져와서 getCount를 찍어보면 DB상엔 값이 있음에도 불구하고 0으로 나옵니다 ㅜ.ㅡ;


사실 -_-;; 이렇게 질문하는게 답변하기도 애매하고, 정확히 증상을 알기 어렵긴 할텐데...
혹시나 execSQL 을 사용하면서 DB 락이 걸렸다든가... 뭐 그런 사항들이 있는데 제가 모르는게 아닌가 하여 질문 올렸습니다.

endTransaction 도 해줬고.. 혹시나 싶어서 getWritableDatabase 였나.. 그거 해줬던 애는.. close도 해줬습니다.

Insert 와 Update 구문만 변경했고, 나머진 다 그대로인데.. 갑자기 되던데 안돌아가니.. 좀 당황스럽네요.

딱히 해당 query 구문에서 에러가 나거나 하는것도 아닙니다..;; 단지 query를 날린 결과값이 안들어와있을뿐... ㅜ.ㅜ

혹시 아시는분 도움좀 부탁드려요~~

감사합니다.