Перейти к содержанию
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
2 часа назад, gelo1 сказал:

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

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

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

 

Ссылка на комментарий
  • 0

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

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

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

Ссылка на комментарий
  • 0
20 часов назад, Rusland сказал:

Чего?

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

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

Я не понял Вашего вопроса. Поясните пожалуйста.

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

Ссылка на комментарий
  • 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

никогда не работал с SQLite

[update] 

а вы в курсе, что EditChange это только когда выйти из Edit ?

Изменено пользователем krapotkin
Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

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