마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

selection조건으로 cursor를 조회하여 해당 row가 없는 경우 insert를 하려는 데 cursor가 null이 아닙니다.

0 추천

 

cursor =  mDb.getcolumns(InterfaceDB.TB_DATA, selection,null);
 
쿼리로 조건에 맞는 row를 검색하여 값이 없는 경우에 insert를 하려고 합니다.
 
값이 있는 경우는 if(cursor!=null && cursor.getCount()>0) 조건으로 해결했는데,
 
값이 없는 경우는 else로 해도 들어오지 않고, else if(cursor.getCount== true) 도 안됩니다.
 
그래서 Log를 찍어 보았더니, selection에 부합하는 row가 없을 경우에도
 
cursor에는 값이 있더라구여. 그래서 이 값이 뭔지는 모르겠고,
 
cursor.moveToFirst(); 를 해도 에러가 납니다.
 
이런 경우 어떻게 해결해야 하는지 조언좀 부탁드립니다.
이죠 (420 포인트) 님이 2013년 5월 3일 질문

2개의 답변

0 추천

cursor.getCount()== true 는 return이 int형이라 안되고

cursor에 값이 있는것은 어떻게 아셨나요??

cursor.getInt(index) 같은걸로 직접 데이터 뽑아서 확인해 보시는게 날 듯 합니다.

 

노예의집 (23,370 포인트) 님이 2013년 5월 3일 답변
0 추천

insert or replace 구문이 있습니다. 구글링 해보세요.

또한 방법으로는 insertOrThrow 를 사용하여 키중복으로 insert가 안될 경우 catch절에서 update 하던지 말던지 하면 됩니다.

whylee259 (310 포인트) 님이 2013년 5월 3일 답변
...