Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизИсключение при неустановленных драйверах Найти похожие ветки
← →
Анонимщик © (2004-07-02 15:17) [0]Использую IBX
При запуске клиентской программы происходит исключение еще до Application.Run, если драйвера FireBird"а не установлены. Назначение программа, в принципе, не ограничивается работой с БД, поэтому ставить их на клиенте иногда не нужно.
Как можно побороть?
← →
Соловьев © (2004-07-02 15:24) [1]
> исключение еще до Application.Run,
зато во время коннекта к БД у тебя же наверное датабейз коннект автоматом коннектится
← →
Reindeer Moss Eater © (2004-07-02 15:40) [2]Если библиотеки линкуются статически, то никак.
← →
Анонимщик © (2004-07-02 15:52) [3]Соловьев.
Нет.
Reindeer Moss Eater
И что сделать, чтобы поменьше менять?
← →
Соловьев © (2004-07-02 16:00) [4]
> Нет.
да :)
← →
Соловьев © (2004-07-02 16:00) [5]
> Нет.
да :)
← →
Анонимщик © (2004-07-02 16:02) [6]Я же сказал: нет.
← →
Соловьев © (2004-07-02 16:05) [7]берем пишем при Create модуля данных:
try
IBDatabase.Connected := true;
except
end;
и не будет исключения.
← →
Reindeer Moss Eater © (2004-07-02 16:17) [8]А зачем создавать модуль данных всегда, если программа не ограничена работой с БД?
← →
Анонимщик © (2004-07-02 16:24) [9]Я же сказал уже.
И потом, мне незачем писать
IBDatabase.Connected := true
поскольку при Create я еще пути не знаю.
Ты бы проверил сначала, а потом отвечал.
Просто брось на форму TIBDataBase и больше ничего не делай, кроме билда. А потом запусти экзешник на машине без gds32.dll, и больше не умничай, хорошо?
← →
Reindeer Moss Eater © (2004-07-02 16:26) [10]Ты дарагой сам не умничай.
И читай пост № 2
← →
Anatoly Podgoretsky © (2004-07-02 16:27) [11]Убрать из проекта БД
← →
Анонимщик © (2004-07-02 16:28) [12]Reindeer Moss Eater
Это неважно, создается он как Create или нет. Исключение все равно будет, как Вы правильно заметили, коль компоновка статическая
← →
Reindeer Moss Eater © (2004-07-02 16:29) [13]Выход - переписать библиотеку IBX
← →
Анонимщик © (2004-07-02 16:31) [14]Reindeer Moss Eater
Это я не Вам писал, а Соловьеву
← →
Reindeer Moss Eater © (2004-07-02 16:31) [15]Либо бить свою приладу на DLL/пакеты, выносить все IB-dependent туда, и грузить опционально, проверив наличие gds
← →
Анонимщик © (2004-07-02 16:33) [16]Reindeer Moss Eater
Может, чего-то в ее исходниках (IBX) подправить? Мне бы самый простой способ.
← →
Соловьев © (2004-07-02 16:35) [17]
> Просто брось на форму TIBDataBase и больше ничего не делай,
> кроме билда
ну создавай обьект сам.
← →
Reindeer Moss Eater © (2004-07-02 16:36) [18]Ну я в них не глядел.
Но способ-то простой (хотя и трудоемкий)
Найти интерфейс с gds и переписать все на динамический импорт, добаваив процедуру загрузки/инициализации по требованию
← →
Соловьев © (2004-07-02 16:44) [19]
> Просто брось на форму TIBDataBase и больше ничего не делай,
> кроме билда. А потом запусти экзешник на машине без gds32.dll,
> и больше не умничай, хорошо?
procedure TDm.DataModuleCreate(Sender: TObject);
var ibd: TIBDatabase;
begin
try
ibd := TIBDatabase.Create(DM);
showmessage("gds32.dll есть");
except
showmessage("gds32.dll нет");
end;
end;
запустил на машине где нету библиотеки - все нормально.
ОС XP
← →
Reindeer Moss Eater © (2004-07-02 16:53) [20]Глянул в ibintf.pas.
Нету там статического импорта.
Там он динамический.
Главное не допустить вызова
procedure LoadIBLibrary;
раньше, чем это реально надо
← →
Анонимщик © (2004-07-02 17:48) [21]Убедили, спасибо.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.037 c