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

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

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

Сообщение powercat » 27 авг 2012, 18:04

Не могу понять в чем проблема: вот такой код работает отлично и удаляет файл

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

				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 КБ) 3758 просмотров
Вопрос - где я туплю??

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

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

Сообщение neoksi » 27 авг 2012, 18:15

cursor.moveToFirst() - этой командой, ты выставляешь каретку курсора на первую запись, в случае удачи выставления каретки курсора, метод возвращает true.
Если в курсоре не выставлена каретка, то и данные ты не сможешь прочитать.

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

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

Сообщение powercat » 27 авг 2012, 20:53

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

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

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

Сообщение rezak90 » 27 авг 2012, 21:11

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

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

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

Сообщение neoksi » 27 авг 2012, 23:34

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

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

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

Сообщение powercat » 28 авг 2012, 09:24

Понятно...тогда может это как-то добавить в урок...ну сделать приписку об этом?

Ответить