SQLite Db에 저장된 DATA값을 중복 체크를 할려고 합니다.
첫번째 중복체크에서 이미등록된 DATA라고 Alert으로 출력하고
두번째로 중복되진 않은 DATA값을 등록을 시도하면
"Index 0 requested, with a size of 0" 이라는 메세지가 출력되어 지고 있습니다.
기본적인 구현인데 이런것까지 물어보게 되는군여..
그리고 EditText에 문자를 입력하는데 에뮬레이터에서 입력되는 속도가 정말엄청 느린데
이것 에뮬레이터라서 그런가여.. ?
안드로이드 메모리 관련해서 궁금하내여..
그리고 중복체크를 쿼리문으로 쓰셨나요??
그리고 그걸 Cursor이 받으셨죠??
그럼 중복체크할때
if(cursor != null && cursor > 0) //값이 있으므로 중복되었다는걸 확인
{
다이얼로그 표시
}
else
{
SQLiteDatabase변수.insert(String table, String nullColumnHack, ContentValues values);
}
하면 문제는..없을껍니다..
이건 쿼리 결과로 받아온 커서에 결과가 없는데 커서를 조작하는 경우에 발생하는 메세지인것 같습니다.
index 0인것으로 보아 moveTo(0) 하신것 아니신지요?
SQLite DB 조회에서 값이 없는 null이라도
조회 결과를 Cursor 객체를 리턴 해 주는군여.
결국 cursor.getCount() == 0 체크로 null과 같은 기능을 해줬습니다.
Log.d("DAO"," fetchSale call === ");
String TsaMclNm = initialValues.getAsString(TSA_MCL_NM);
Log.d("DAO"," fetchSale call === ["+TsaMclNm+"]");
Cursor mCursor = mDb.query(ConsIF.DATABASE_TABLE_MCLNT, new String[] { TSA_ID
,TSA_MCL_CODE
,TSA_MCL_NM}
," TSA_MCL_NM = ? "
, new String[]{TsaMclNm}
, null
, null
, null
, null);
Log.d("DAO","fetchSale mCursor@@@@@@@@@@@@@@@@@@@@@@");
// if(mCursor != null )
// {
//생략
// }
if (mCursor.getCount() == 0){
mCursor = null;
}
Log.d("DAO","fetchSale-----------11111--------------- ");
이번주는 엄청 삽질을 하내요 반나절 해맸습니다. 어이구...
디버깅모드로하면 좀 느려집니다..^^;
크게 느려지진 않구요 정말 약간만 느려지더군요..(2.0~2.0.1 test)