Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Ламерский вопрос по SQLite, который меня беспокоит.  (Прочитано 14814 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ilia
Помогающий

ru
Offline Offline
Пол: Мужской

« : 12-09-2019 13:00 » 

Приветствую форум Весельчака У, который когда то очень давно здорово помог мне на старте.
Очень рад снова заглянуть сюда!!!
 
Только начал пробовать Android Studio.
Осваиваю работу с бд, нашел пример создания бд:

Код:
SQLiteDatabase myDB = 
  openOrCreateDatabase("my.db", MODE_PRIVATE, null);

Это что же получается, я могу создать БД с любым именем, а если такое же имя будет использовать другой разработчик и мы будем друг другу базы "портить".
Я не хочу в чужую бд свои данные писать (и другим не позволю Улыбаюсь ). Конечно я никогда не буду использовать имя БД из примеров, но вероятность, что имена баз совпадут хоть и малая, но есть.
Есть ли в android какая-то защита от этого. Возможно в самом android база именуется каким-то уникальным ID? Или мне именовать с применением длинных комбинаций чисел+символов? Или проверять перед созданием - есть ли такая база? Но другой разработчик не будет проверять есть ли такая база и может затереть мои даные. Что-то не нашел про это в гугл.

И еще вопрос. Я тупо применяю

Код:
myDB.execSQL
и все что надо - insert, update, delete и т.п. делаю запросом. Не понимаю зачем в литературе усложняют и предлагают использование отдельных методов insert(), update(), delete()? В чем смысл?

Спасибо!
Записан

Кто выпил весь кофе!
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 12-09-2019 22:49 » 

Базы SQLite — обычные файлы. Если они в одной директории, конечно имена повторяться не могут. Полагаю приложение имеет собственную директорию или возможность такую завести и там гадить.

Не видел документации, не берусь давать точный ответ. Скорее всего это не методы базы, а методы таблицы. Прямой SQL не всегда удобен и нужно самостоятельно заботиться о подготовке данных.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Ilia
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 13-09-2019 04:47 » 

Цитата
Базы SQLite — обычные файлы.
RXL, вон оно как, спасибо! Очень интересно. Класс! Настолько привык к серверу и клиентам, что честно даже не ожидал, за новинками не слежу совсем, ушел читать подробнее. Читаю...
Записан

Кто выпил весь кофе!
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 13-09-2019 06:32 » 

Цитата
Не понимаю зачем в литературе усложняют и предлагают использование отдельных методов insert(), update(), delete()?
Надо смотреть в документацию, возможно , это безопасные методы, чем прямой запрос

По поводу создания базы

Не возможно создать этим именем - возникнет ошибка, кроме того вы базу создаете в своем файловом пространсьве, а не где попало, Ну и... создавайте уникальные названия..


Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Ilia
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 13-09-2019 11:44 » new

Sla, спасибо!  Друзья?

Записан

Кто выпил весь кофе!
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines