Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / При деплое приложение с FireDac не видит БД / 24 сообщений из 24, страница 1 из 1
02.08.2018, 13:25
    #39682548
drbond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
Столкнулся с такой проблемой - на компьютере, где разрабатываю приложение при запуске всё ОК. Приложение - простенький интерфейс к БД Sqlite3. Для связи использую драйвера FireDac. Соответственно переношу приложение на другой компьютер (файл БД в папке, sqlite3.dll в папке с приложением). При запуске получаю ошибку -Exception ESQLiteNativeExeption in module Project1.exe [FireDAC][Phys][SQLite] ERROR: unable to open database file.
Что это может быть? Как добиться адекватного запуска приложения на другом компьютере?
============

drbond
...
Рейтинг: 0 / 0
02.08.2018, 13:34
    #39682556
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
drbondЧто это может быть?Обычно фразаdrbondunable to open database file.переводится как "Невозможно открыть файл базы данных"drbondКак добиться адекватного запуска приложения на другом компьютере?Переписать на компьютер базу данных
...
Рейтинг: 0 / 0
02.08.2018, 13:39
    #39682563
drbond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
_Vasilisk_, в том-то и дело, что БД лежит на компьютере, в одной папке с экзешником и dll-кой. И путь к БД в FD.Connection прописан корректно.
...
Рейтинг: 0 / 0
02.08.2018, 14:00
    #39682581
AJi
AJi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
Путь к базе прописываете в run-time или design-time?
...
Рейтинг: 0 / 0
02.08.2018, 14:17
    #39682591
drbond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
AJi, путь прописываю в design-time в свойствах FD.Connection. Пробовал прописывать и в run-time в обработчике
Код: pascal
1.
2.
3.
4.
procedure TMainForm.FDConnection1BeforeConnect(Sender: TObject);
begin
     FDConnection1.Params.Values['Database'] := 'db3.db';
end;


Эффект тот же. На машине со средой разрабтки всё работает правильно. На другой машине не запускается.
...
Рейтинг: 0 / 0
02.08.2018, 14:19
    #39682593
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
drbondНа другой машине не запускается.
Чудес ведь не бывает. Если запускается под админом, то папка запуска меняется, к примеру.
Проверка FileExists не помешает или прописывать полный путь к базе.
...
Рейтинг: 0 / 0
02.08.2018, 14:32
    #39682601
AJi
AJi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
drbondAJi, путь прописываю в design-time в свойствах FD.Connection. Пробовал прописывать и в run-time в обработчике
Код: pascal
1.
2.
3.
4.
procedure TMainForm.FDConnection1BeforeConnect(Sender: TObject);
begin
     FDConnection1.Params.Values['Database'] := 'db3.db';
end;


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

Как уже правильно заметили, чудес не бывает. Указывайте полный путь к имени БД. ExtractFilePath(Application.ExeName) + 'db3.db'
B посмотрите свойство Active. Оно должно быть установлено в false.
...
Рейтинг: 0 / 0
02.08.2018, 14:35
    #39682606
drbond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
wadman, я вот так теперь написал
Код: pascal
1.
2.
3.
4.
procedure TMainForm.FDConnection1BeforeConnect(Sender: TObject);
begin
     FDConnection1.Params.Values['Database'] := ExtractFilePath(ParamStr(0))+ 'db3.db';
end;


Эффект тот же.
...
Рейтинг: 0 / 0
02.08.2018, 14:39
    #39682608
drbond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
AJi, свойство connected стоит в false. Свойство Active у запросов тоже стоит в false.
...
Рейтинг: 0 / 0
02.08.2018, 14:54
    #39682619
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
AS. а кроме программы никто другой не держит файл БД монопольно открытым? антивирус там или какой-нибудь database explorer ?

sysinternals process explorer - run asadmin - search handle

а касательно непосредственно ошибки при работе программы, sysinternals process monitor в зубы и смотреть лог файловых операций программы, где именно она пытается БД открыть и какие ей ошибки Windows возвращает
...
Рейтинг: 0 / 0
02.08.2018, 15:00
    #39682621
drbond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
AriochAS. а кроме программы никто другой не держит файл БД монопольно открытым? антивирус там или какой-нибудь database explorer ?

sysinternals process explorer - run asadmin - search handle

а касательно непосредственно ошибки при работе программы, sysinternals process monitor в зубы и смотреть лог файловых операций программы, где именно она пытается БД открыть и какие ей ошибки Windows возвращает

Никто не держит БД монопольно открытым. С sysinternals process monitor ещё не работал. Попробую ради любопытства. Спасибо!
...
Рейтинг: 0 / 0
02.08.2018, 15:25
    #39682644
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
drbondНикто не держит БД монопольно открытым.

это как, две программы с SQLite могут ОДНОВРЕМЕННО писать в одну БД ?
...
Рейтинг: 0 / 0
02.08.2018, 15:35
    #39682648
drbond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
Arioch, не понял вопрос. Я писал про то, что на момент попытки открытия БД она не занята никаким процессом.
...
Рейтинг: 0 / 0
02.08.2018, 16:16
    #39682685
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
drbond,

если база в program files, то винда меняет путь на programdata.
Используй processmonitor чтобы выяснить, где ищется БД.
...
Рейтинг: 0 / 0
02.08.2018, 18:57
    #39682764
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
kdvесли база в program files, то винда меняет путь на programdata.

да щаз! на users оно меняется

programdata == users\public\appdata - частный случай
...
Рейтинг: 0 / 0
06.08.2018, 15:59
    #39683795
drbond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
Проблема решилась неожиданным образом - убрал с формы FDConnetcion, потом снова бросил его на форму. И всё заработало. Вот чей это глюк? FireDAC или среды разработки?
...
Рейтинг: 0 / 0
06.08.2018, 16:07
    #39683800
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
drbondИ всё заработало. Вот чей это глюк? FireDAC или среды разработки?

А системы контроля версий чтобы сравнить файлы "до" и "после", конечно же, нет и ты будешь
мамой клясться, что "никакие свойства компонента не изменял".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.08.2018, 16:54
    #39683842
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
Dimitry Sibiryakovчтобы сравнить файлы "до" и "после"

....в самой Delphi есть архив последних изменений
...
Рейтинг: 0 / 0
06.08.2018, 18:09
    #39683887
drbond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
Dimitry Sibiryakov,
Так оно и есть. А что там менять? Просто при первичной настройке компонента выбрал SQLite, ввёл путь к БД. Снял в свойствах галку с LoginPrompt. Ничего больше не менял. То же самое сделал и при повторном размещении компонента на форме. Я в принципе не грешу на FireDAC. Сейчас всё работает и меня вполне устраивает. Я хочу понять причину.
...
Рейтинг: 0 / 0
06.08.2018, 18:24
    #39683897
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
drbond,

сравнить DFM-файлы до и после

в Delphi входит обрезок Beyond Compare и архив последних сохранений на пару недель. См вкладку history или папку __history
...
Рейтинг: 0 / 0
06.08.2018, 18:26
    #39683900
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
drbondС sysinternals process monitor ещё не работал. Попробую ради любопытства.

Какие были результаты ?
...
Рейтинг: 0 / 0
06.08.2018, 18:43
    #39683909
drbond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
Arioch, вот кусок dfm от 02.08.18
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
object FDConnection1: TFDConnection
    Params.Strings = (
      'Database=db3.db'
      'DriverID=SQLite')
    LoginPrompt = False
    Transaction = FDTransaction1
    BeforeConnect = FDConnection1BeforeConnect
    Left = 168
    Top = 16
  end


Вот кусок сегодняшнего dfm
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
object FDConnection1: TFDConnection
    Params.Strings = (
      'Database=db3.db'
      'DriverID=SQLite')
    LoginPrompt = False
    Transaction = FDTransaction1
    BeforeConnect = FDConnection1BeforeConnect
    Left = 152
    Top = 16
end


2 августа проблема была. Сегодня проблема исчезла.
...
Рейтинг: 0 / 0
06.08.2018, 19:14
    #39683925
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
drbond,

и никаких других изменений не было? порядок создания компонентов, например, или свойств у других компонентов/формы ?
...
Рейтинг: 0 / 0
06.08.2018, 19:16
    #39683928
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При деплое приложение с FireDac не видит БД
Проверить нетрудно, в общем.

Припрятать сегодняшнюю DFM и подложить вместо нее от 2 августа. Либо проблема возникнет после этого единственного изменения, либо нет.
Во втором случае - дело было в чём-то другом, в кэшах каких-нибудь, или ещё в чём-то

А форма "чистая" или наследуется от другой вашей формы?
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / При деплое приложение с FireDac не видит БД / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]