• 0
gelo1

Как перезаписать локальную базу SQLite скачав новую с сервера в Интернете

Вопросы

Здравствуйте ребята. Моё имя Олег. Я из Минска.

Подскажите пожалуйста. У меня есть приложение для OS Android представляющее собой базу данных в котором задеплоин файл БД SQLite. Хотелось бы пойти дальше и изучить как обновлять этот файл базы на этом приложении из удалённого сервера простора INTERNET. Может у кого есть готовое решение или ссылка где это подробно описано?

Благодарю.

С Уважением. Олег.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 ответов на этот вопрос

  • 0
Только что, gelo1 сказал:

Здравствуйте ребята. Моё имя Олег. Я из Минска.

Подскажите пожалуйста. У меня есть приложение для OS Android представляющее собой базу данных в котором задеплоин файл БД SQLite. Хотелось бы пойти дальше и изучить как обновлять этот файл базы на этом приложении из удалённого сервера простора INTERNET. Может у кого есть готовое решение или ссылка где это подробно описано?

Благодарю.

С Уважением. Олег.

Да какое готовое, кидаете на сервер файлик sql и insert'ами или update'ами и все. Если большой файлик, можете в zip положить. Он есть в delphi. Закачиваете и выполняете этот файлик на локальном устройстве.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Здравствуйте Виталий.

СпасиБо за ответ. Я начинающий в Андроиде. Пожалуйста раскройте более подробно следующие Ваши слова:"Закачиваете и выполняете этот файлик на локальном устройстве."

С Уважением. Олег.

-

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 1
5 минут назад, gelo1 сказал:

Здравствуйте Виталий.

СпасиБо за ответ. Я начинающий в Андроиде. Пожалуйста раскройте более подробно следующие Ваши слова:"Закачиваете и выполняете этот файлик на локальном устройстве."

С Уважением. Олег.

-

Я хоть не начинающий, но нет андроида и если и программирую для мобил, то только на iOs. Я это использую для десктопов. Я думаю, для андроида почти также. У вас должен быть доступ к серверу. Вы ложите туда готовый файлик с sql кодом. Там куча инсертов разделёных точно с запятой. Ты по http его закачиваешь. Я использую для этого indy, но для андроида, точно знаю его нельзя использовать, ибо так глюк какой то в 6 андроиде. Поэтому используй NetHTTPClient

я делаю так:

 lStream1 := TMemoryStream.Create;

 form1.idhttp1.Get( 'http://твой сайт/file_base_update/'+'имя файла', lStream1);

 lStream1.SaveToFile(ExtractFilePath(ParamStr(0)) + 'имя файла' );

Я дальше забрасываю этот файлик в базу данных. Я не использую стандартную обертку, а использую от Devart- LiteDac. Но думаю и в fireDac есть тоже самое. Там есть LiteScript1 в него кидаешь файл sql с разделителями ; и он разом выполняется.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

А на ответы коллег могу добавить, что они предлагают закачать готовый файл базы данных, а не обновления уже имеющейся. А это разные вещи!

Изменено пользователем Vitaldj

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Виталий.

Давайте по порядку. У меня есть файл базы "имя.db3" в нём вся база. Я этот файл ложу на удалённый сервер (есть такая бесплатная возможность) с помощью персонального компьютера. А вот что дальше? Я Вас не понимаю. Разве не надо просто скачать как то этот файл кудато на мобильное устройство? Или я совсем ничего не понимаю?

С Уважением. Олег.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
7 минут назад, gelo1 сказал:

Виталий.

Давайте по порядку. У меня есть файл базы "имя.db3" в нём вся база. Я этот файл ложу на удалённый сервер (есть такая бесплатная возможность) с помощью персонального компьютера. А вот что дальше? Я Вас не понимаю. Разве не надо просто скачать как то этот файл кудато на мобильное устройство? Или я совсем ничего не понимаю?

С Уважением. Олег.

Коллега, так вы скачать файл базы данных хотите или обновить уже имеющийся? Это разные вещи. Я отвечал на вопрос по обновлению уже имеющейся БД. Вы же в самом начале уже написали, что задеплоили уже файл! Вы меня запутали.)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Сначала скачать на устройство а потом в устройстве его обновить.

Олег.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
51 минуту назад, gelo1 сказал:

Сначала скачать на устройство а потом в устройстве его обновить.

Олег.

Обратите внимание:

1) На пост Виталия с примером кода по скачиванию файла из Интернета

2) На пост Равиля, две темы, в одной есть ссылка на мою статью, во второй код из моей статьи

3) Совместите два этих пункта и получите Профит.

 

p.s. Не забудьте, перед непосредственным обновлением файла (или раньше), необходимо отключиться от базы!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От x11
      При попытке подключиться к базе данных SQLite на эмуляторе с Android  7 получаю исключение:
      Delphi Tokyo + UniDAC 7.
      Эмулятор какой-то неполноценный?
    • От brunnengi
      Здравствуйте.
      Требуется программа на андроид с набором кнопок со следующем функционалом:
      1. Кнопка1 - создать базу в test.sqlite (в том месте где доступ к нему есть только у самого приложения (имею ввиду если это не ROOT телефон, при рут и так всё понятно)
      2. Кнопка2 - создать таблицу в базе test.sqlite с названием "TblTest01" (с разным набором полей на своё усмотрение)
      3. Кнопка3 - создать таблицу в базе test.sqlite с названием "TblTest02" (с разным набором полей на своё усмотрение)
      4. Кнопка4 - Добавить строку в таблицу "TblTest01" (любой набор данных на ваших усмотрение)
      5. Кнопка5 - Удалить строку в таблице "TblTest01" (по любому ключу на ваше усмотрение)
      6. Кнопка6 - Изменить строку в таблице "TblTest01" (по любому ключу и любое значение на ваше усмотрение)
       
      Приложение должно иметь фоновый сервис, который должен получать данные с сервера и добавлять их в базу test.sqlite в таблицу "TblTest02".
      При получение новый данных, сервис должен показать в "шторке" сообщение, по клику на которую открывается само приложение с визуальной частью.
      Т.е. если визуально приложение закрыто, выгружено, не запущено или запущено, фоновый процесс должен сам делать запросы к серверу и добавлять новые данные в базу, если они есть/поступили
      Приложение должно запускаться вместе с системой, после перезагрузки и т.д.
      Использовать только те компоненты что доступны в самой среде из коробки.
      Часть где делается запрос к серверу должен иметь timeout равный 20 секундам.
      Сервис должен грамотно делать запросы к серверу как положено в Андроид приложениях. 
      Серверная часть мне не нужна, можете для теста сами эмулирвать эти процессы.
       
       
      -----
      ЦЕНА: 2500р.
      СРОКИ: Не горит, но в целом где то дней 7 есть
      Перечисляю на QIWI, ЯД, Сбербанк, короче куда скажите.
    • От notricky
      Суть вопроса в заголовке.
      Есть ли какие-то настройки у базы или FireDAC чтобы в английской системе (винда 7) русский текст отображался не вопросами, а русским текстом?
      Настройки у БД UTF-8.
    • От Clio
      Добрый день !
      В приложении я использую базу SQLite (полt, содержащие дату и время тип REAL) . В TFDQuery я описал это поле - тип Float и через LiveBindings подключил к TGrid (Date Column). 
      Но в гриде отображается только год, а не полное время. 
      Подскажите, пожалуйста, как необходимо настроить поле в Query и TGrid, чтобы дата и время отображалась правильно.
    • От notricky
      Собственно как это делают люди?

      Речь, конечно, не про выполнение скрипта "update table set...", а про использование Edit/Post с изменением как в Датасете, так и в БД.

      Какие нужны настройки, в частности у TFDQuery.
      // настройки qr.UpdateOptions = [KeyFields = id][UpdateChangedFields = true] // при этом селект не смотрит напрямую в theTable, но id - это поле theTable qr2.UpdateOptions.UpdateTableName := 'theTable'; qr2.Edit; qr2.FieldByName('Str').Value := Format('%s-%d',[qr2.FieldByName('Str').AsString, Code]); qr2.Post; В такой форме позволяет менять датасет, но в БД данные не скидываются. БД SQLite.
    • От Bio HaZaRD
      Всем привет!
      Пишу проект на основе FireDac (TFDConnection, TFDQuery) + SQLite. На ПК с IDE программа запускается, а на других - нет. На ПК, без IDE, стоят все обновы.
      Помогите разобраться, где проблема или посоветуйте другой компонент, который поддерживает SQLite. Заранее спасибо!
       
      Примечания к файлу:
      Windows-Problemberichtserfassung = Windows Problem Reporting

    • От GoldenEalge
      Имеется бд с полем blob , как из нее загрузить картинку в ListView через LiveBindings ?
    • От GoldenEalge
      Всем привет только начинаю работать с sqlite и возникло пару вопросов.Добавляю на форму пару компонентов

      Устанавливаю связь с бд которая лежит в папке 

      при запуске все хорошо 

      но при попытки редактировать , выдает 

      база открыта только в софте , больше не где ,в чем может быть проблема?
       
    • От Steepe_Hare
      Посоветуйте, пожалуйста, простой пример, как из Android-программы отослать определенные данные на сервер, а там, на сервере (PHP?), добавить их в базу и обновить список.
    • От Rusland
      Можно ли работать с одной базой одновременно и из программы и из сервиса?
      PS. Android
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу