Перейти к содержанию
Fire Monkey от А до Я
  • 0

Почему не видны изменения в файле базы SQLite


Олег Киреев

Вопрос

Опубликовано (изменено)

Здравствуйте уважаемые члены сообщества.
Пожалуйста подскажите ответ на такой вопрос.
Почему после процедуры Ввести приложения для ОС Андроид:

//Ввести
procedure TForm_Glavn_ZapKnijka.Button_Vvod_ParolClick(Sender: TObject);
begin
try
Query_Parol.Insert;
Query_Parol.FieldByName(‘Parol’).AsString:=Edit_Parol.Text;
Query_Parol.Post;
Query_Parol.Refresh;

Query_Zabyl.Insert;
Query_Zabyl.FieldByName(‘Vopros’).AsString:=ComboBox_Vopros.Items.Text;
Query_Zabyl.FieldByName(‘Otvet’).AsString:=Edit_Otvet.Text;
Query_Zabyl.Post;
Query_Zabyl.Refresh;

Showmessage(‘Введено.’);
Label1.Text:=Query_Parol.FieldByName(‘Parol’).AsString;
except
on e: Exception do
begin
Showmessage(‘Ошибка ввода. Попробуйте ещё раз.: ‘+e.Message);
end;
end;
end;


В Label1 появляется нужный текст а в самой базе DB.db3 пусто? Хотя подключение к файлу базы без ошибок. Проверяю в обоих файлах в папке проекта и в папке \assets\internal. Все поля пусты.

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

Изменено пользователем Andrey Efimov
Добавлен тег "Код"

Рекомендуемые сообщения

  • 0
Опубликовано (изменено)

Визуальные компоненты портят начинающих программеров...

Query_Parol - это что? DBTable? Тексты запросов в студию.

и транслитерация - плохой тон, почему бы не tbPassword?

Изменено пользователем Камышев Александр
  • 0
Опубликовано (изменено)

Здравствуйте Александр.

СпасиБО за ответ.

Query_Parol это не видимый компонент TFDQuery. Я уже так пробовал заносить:

Query_Parol.SQL.Text := 'INSERT INTO Tab_Parol (Parol) VALUES (:P)';
 Query_Parol.ParamByName('P').Value := Edit_Parol.Text;
 Query_Parol.ExecSQL;
 Query_Parol.Transaction.Commit;
 Query_Parol.Refresh;

и так:

Query_Parol.Insert;
 Query_Parol.FieldByName('Parol').AsString:=Edit_Parol.Text;
 Query_Parol.Post;
 Query_Parol.Refresh;

ничего не вижу в файле базы архива apk.

Подскажите что не так.

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

Изменено пользователем Andrey Efimov
Добавлен тег "Код"
  • 0
Опубликовано (изменено)
1 час назад, gelo1 сказал:

ничего не вижу в файле базы архива apk.

Чего?

Если после insert сделать select, то что выдает?

Изменено пользователем Rusland
  • 0
Опубликовано
2 часа назад, gelo1 сказал:

ничего не вижу в файле базы архива apk.

а при чем тут файл базы данных в APK? Вы его деплоите? 

если да, смотреть надо файл БД не в APK, а по пути куда вы его поместили, после установки приложения...

 

  • 0
Опубликовано

Здравствуйте.

Да деплою. Смотрю файл и там тоже откуда деплою. Пусто. Не знаю где посмотреть. В самом приложении всё нормально. Видны данные в гриде. Я их и дополняю и удаляю из приложения. Но посмотреть как в Win в Accesse нигде не могу. Уж не знаю как быть.

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

  • 0
Опубликовано

Здравствуйте Крапоткин.

СпасиБО за ответ.

Я задеплоил файл базы от сюда ... \Android\Debug\Project_ZapKnijka\assets\internal\. Правильно ли я понимаю что этот файл базы должен поменяться?

Если нет. Тогда подскажите где же запрятался файл базы который меняется?

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

  • 0
Опубликовано (изменено)

Как все запущено... deploy означает разместить на мобильном устройстве, изменения будут в файле на телефоне или планшете.

Посмотреть изменения можно или из программы, запросить 'select * from Tab_Parol', либо любой прогой из googleplay которая работает с sqlite.

Хотя нет, internal сторонними программами не посмотришь, надо из своей контролить.

Изменено пользователем Камышев Александр
  • 0
Опубликовано

мало того, если БД уже есть на устройстве, то повторный деплой не перезапишет ее чтобы не терять данные

предполагается, что программист должен сам предусмотреть механизм, который из старой БД сделает новую

  • 0
Опубликовано

Да Крапоткин. СпасиБО. Я раньше столкнулся с тем чтобы обновить базу приходилось полностью удалять приложение с телефона и устанавливать снова.

(Я служил под Екатеринбургом возле посёлка Белоярского в 1988/89гг. Интересно как там всё изменилось?)

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

  • 0
Опубликовано (изменено)

СпасиБо Крапоткин.

А можно еще вопрос по фильтрации данных в на телефоне в Андроиде.

На процедуру изменения Едита пишу так:

//Найти запись
procedure TForm_Tabl_Knijka.Edit_Poisk_ZapisChange(Sender: TObject);
begin
Query_Tab_Zapisy_Poisk.Active:=False;
Query_Tab_Zapisy_Poisk.SQL.Clear;
Query_Tab_Zapisy_Poisk.SQL.Add('SELECT * FROM Tab_Zapisy where Soderjanie like '+#39+Edit_Poisk_Zapis.Text+'%'+ #39+' ORDER BY Soderjanie'  );
Query_Tab_Zapisy_Poisk.Active:=True;
end;

В Видовсе всё отлично работает сразу при наборе отфильтровывает. На телефоне ноль внимания и даже когда нажимаю кривую стрелку.

Что у меня не так?

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

Изменено пользователем Andrey Efimov
Добавлен тег "Код"
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

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