Страница 1 из 1

Удаление из базы

Добавлено: 27 авг 2012, 18:04
powercat
Не могу понять в чем проблема: вот такой код работает отлично и удаляет файл

Код: Выделить всё

				long myInt=adapterContextMenuInfo.id;
				String myRow="SELECT * FROM mainTable WHERE _id="+myInt;
				cursor=db.rawQuery(myRow, null);
				if (cursor.moveToFirst()){
					String localPath=cursor.getString(cursor.getColumnIndex("pathToFile"));
					File_Works.FileDelete(localPath);//Удаление файла
				}
Этот же код, но без IFа:

Код: Выделить всё

				long myInt=adapterContextMenuInfo.id;
				String myRow="SELECT * FROM mainTable WHERE _id="+myInt;
				cursor=db.rawQuery(myRow, null);
				//if (cursor.moveToFirst()){
					String localPath=cursor.getString(cursor.getColumnIndex("pathToFile"));
					File_Works.FileDelete(localPath);//Удаление фото
				//}
Не работает, выдает ошибку что-то там с курсором, выдает не в логкате, а как-бы закладку в дебагере делает вот такую:
Debug - android.database.png
Debug - android.database.png (30.15 КБ) 4502 просмотра
Вопрос - где я туплю??

Re: Удаление из базы

Добавлено: 27 авг 2012, 18:15
neoksi
cursor.moveToFirst() - этой командой, ты выставляешь каретку курсора на первую запись, в случае удачи выставления каретки курсора, метод возвращает true.
Если в курсоре не выставлена каретка, то и данные ты не сможешь прочитать.

Re: Удаление из базы

Добавлено: 27 авг 2012, 20:53
powercat
Т.е. ВСЕГДА при работе с курсором его надо перикидывать в начало??

Re: Удаление из базы

Добавлено: 27 авг 2012, 21:11
rezak90
powercat писал(а):Т.е. ВСЕГДА при работе с курсором его надо перикидывать в начало??
не обязательно, просто в данном примере что бы пройтись по всем строкам курсора следует сначала перейти к первому, и тем более moveToFirst() не только передвигает курсор к началу но и даёт понять есть ли записи в нём. А так ты можешь перейти на любую запись moveToPosition(position), но если она существует

Re: Удаление из базы

Добавлено: 27 авг 2012, 23:34
neoksi
powercat писал(а):Т.е. ВСЕГДА при работе с курсором его надо перикидывать в начало??
Ну если ты его только инициировал, то тогда обязательно каретке хоть какую-то позицию определить, не обязательно в начале курсора.

Re: Удаление из базы

Добавлено: 28 авг 2012, 09:24
powercat
Понятно...тогда может это как-то добавить в урок...ну сделать приписку об этом?