Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 28 мар 2017, 06:17

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 165 ]  На страницу 1, 2, 3, 4, 5 ... 9  След.
Автор Сообщение
СообщениеДобавлено: 21 ноя 2011, 04:00 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 12:32
Сообщений: 1320
Благодарил (а): 0 раз.
Поблагодарили: 71 раз.
В этом уроке:

- используем методы query и delete с указанием условия

Click here to read this article!

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Последний раз редактировалось damager82 21 июл 2016, 18:59, всего редактировалось 12 раз(а).

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 18 июл 2012, 17:22 
Аватар пользователя

Зарегистрирован: 18 июл 2012, 17:14
Сообщений: 2
Откуда: самара
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Log.d(LOG_TAG, "--- Update mytabe: ---");
// подготовим значения для обновления
cv = new ContentValues();

а зачем мы обновляем cv? мы же его и так новый создаём при входе в onClick


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 18 июл 2012, 17:58 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 12:32
Сообщений: 1320
Благодарил (а): 0 раз.
Поблагодарили: 71 раз.
alexly25 писал(а):
а зачем мы обновляем cv? мы же его и так новый создаём при входе в onClick

Верно, спасибо!

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 18 июл 2012, 18:57 
Аватар пользователя

Зарегистрирован: 18 июл 2012, 17:14
Сообщений: 2
Откуда: самара
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
damager82 писал(а):
alexly25 писал(а):
а зачем мы обновляем cv? мы же его и так новый создаём при входе в onClick

Верно, спасибо!


и вам большое спасибо за сайт!)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 28 июл 2012, 11:26 

Зарегистрирован: 28 июл 2012, 11:22
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Возможно, стоит предупредить о SQL injection при формировании SQL запроса тем способом, который показан в btnDel.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 июл 2012, 14:38 

Зарегистрирован: 30 июл 2012, 14:32
Сообщений: 25
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
можно ли создать бд на компе, затем перекинуть а потом открыть ее с помощью query?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 июл 2012, 14:45 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 14:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
3Gern писал(а):
можно ли создать бд на компе, затем перекинуть а потом открыть ее с помощью query?

можно, я использую утилиту sqlitestudio-2.0.26 , очень полезная вещ!

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 июл 2012, 15:56 

Зарегистрирован: 30 июл 2012, 14:32
Сообщений: 25
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
rezak90 писал(а):
3Gern писал(а):
можно ли создать бд на компе, затем перекинуть а потом открыть ее с помощью query?

можно, я использую утилиту sqlitestudio-2.0.26 , очень полезная вещ!

спасибо за программу, как видите я в этом деле новичок хотел спросить для такого способа есть статейки, уроки ?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 июл 2012, 16:02 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 14:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
всмысле для какого способа? как создать базу в этой проге? для этого надо знать хоть немножко SQL. В проге нажимаешь Alt+e и вводишь туда запрос.

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 июл 2012, 16:14 

Зарегистрирован: 16 июл 2012, 08:47
Сообщений: 235
Благодарил (а): 0 раз.
Поблагодарили: 25 раз.
Можно создать базу в Андроиде, перекинуть её на комп, заполнить данными и вернуть в Андроид.
Адроид создаёт две дополнительные таблицы:
CREATE TABLE android_metadata (locale TEXT)
содежит одну запись: ru_RU
CREATE TABLE sqlite_sequence(name,seq)
содержит имена таблиц и число записей - 1
Может быть, они нужны Андроиду, а может он сам их создаст при первом открытии.
Если используете Firefox, можно смотреть базу Firefox SQLite Manager'ом


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 июл 2012, 18:15 

Зарегистрирован: 30 июл 2012, 14:32
Сообщений: 25
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
rezak90, math64
скажем у меня есть бд заполненная данными, мне теперь нужно сделать приложение которая будет показывает содержимое этой бд.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 июл 2012, 18:31 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 14:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
3Gern писал(а):
rezak90, math64
скажем у меня есть бд заполненная данными, мне теперь нужно сделать приложение которая будет показывает содержимое этой бд.

так если тебе только прочитать данные из бд нужно то в уроке 34 показано как считываются данные из бд. Это дело в пару строк ;)

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 июл 2012, 19:06 

Зарегистрирован: 30 июл 2012, 14:32
Сообщений: 25
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
rezak90 писал(а):
3Gern писал(а):
rezak90, math64
скажем у меня есть бд заполненная данными, мне теперь нужно сделать приложение которая будет показывает содержимое этой бд.

так если тебе только прочитать данные из бд нужно то в уроке 34 показано как считываются данные из бд. Это дело в пару строк ;)

извиняюсь что водил вас туда сюда, просто голова закипела, отдохнул думаю теперь доходчиво объясню, ладно поехали для того чтобы открыть бд с данными для просмотра мне нужно вручную бд с данными кидать в папку databases, я хотел бы узнать а как автоматизировать этот процесс? ну чтобы при установке приложений бд с данными автоматом копировалась в папку databases


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 июл 2012, 19:24 

Зарегистрирован: 16 июл 2012, 08:47
Сообщений: 235
Благодарил (а): 0 раз.
Поблагодарили: 25 раз.
1. При отладке можно автоматизировать - добавить в Eclipse дополнительный build-step, копирующий файл базы данных на устройство.
2. В самой программе - она может соединиться с твойм компьютером по bluetooth, wi-fi или интернету и скачать файл.
На твоём компьютере должен стоять соответствущий сервер.
3. Если файл базы данных небольшой, его можно встроить в приложение, поместив в папку res/raw


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 июл 2012, 19:56 

Зарегистрирован: 30 июл 2012, 14:32
Сообщений: 25
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
math64 спс


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 14 авг 2012, 12:31 

Зарегистрирован: 13 авг 2012, 15:16
Сообщений: 9
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
А почему не использовать просто:
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. int updCount = db.update("mytable", cv, "id = " + id, null);

вместо масок и массивов:
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. int updCount = db.update("mytable", cv, "id = ?", new String[] { id });


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 14 авг 2012, 13:11 

Зарегистрирован: 16 июл 2012, 08:47
Сообщений: 235
Благодарил (а): 0 раз.
Поблагодарили: 25 раз.
Для изменения одной записи - несущественно. Здесь - демонстрация того, что можно и так. (первый вариант продемонстрирован на delete).
Если измененяется много записей - лучше второй вариант (т.е. как в примере, при условии, что выделение new String[] вынесено за пределы цикла) + использование транзакции.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 10 сен 2012, 23:18 

Зарегистрирован: 23 авг 2012, 09:43
Сообщений: 22
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
добрый день!
Вопросы:
1. Если я удаляю строку например c ID=3 и потом пытаюсь обновить ее то эклипс пишет значение 0. И действительно, когда я проверяю базу то данных с ID=3 уже нет и на то место ничего нельзя записать. Где об этом можно почитать почему так происходит.

2. У вас в коде появился импорт
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. import ru.startandroid.develop.p0341simpelsqlite.R;

но у меня при написании кода в ручную (без copy/paste) не потребовался такой импорт. с чем это связано?
Спасибо за ответы.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 10 сен 2012, 23:45 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 14:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
Roman писал(а):
добрый день!
Вопросы:
1. Если я удаляю строку например c ID=3 и потом пытаюсь обновить ее то эклипс пишет значение 0. И действительно, когда я проверяю базу то данных с ID=3 уже нет и на то место ничего нельзя записать. Где об этом можно почитать почему так происходит.

вы же эту строку удалили, соответственно туда уже ничего не запихнёшь так как если ID - autoincrement то при каждом добавлении ID будет автоматом увеличиваться на 1 и соответственно если у вас идёт запись в базе 1/2/3/5 то вставить значения с ID=4 уже не выйдет. Это в принципе и не надо, потому как строгий порядок здесь не нужен.

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 11 сен 2012, 01:12 

Зарегистрирован: 23 авг 2012, 09:43
Сообщений: 22
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
rezak90 писал(а):
вы же эту строку удалили, соответственно туда уже ничего не запихнёшь так как если ID - autoincrement то при каждом добавлении ID будет автоматом увеличиваться на 1 и соответственно если у вас идёт запись в базе 1/2/3/5 то вставить значения с ID=4 уже не выйдет. Это в принципе и не надо, потому как строгий порядок здесь не нужен.

Спасибо! Понял!


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 165 ]  На страницу 1, 2, 3, 4, 5 ... 9  След.

Часовой пояс: UTC + 4 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB