Здравствуйте господа,
Пожалуйста помогите кто может, ни как не могу справиться уже какой день!!
У меня программа работает с базами данных Paradox (.db), делаю инсталяшку с помощью Install Shied, который подцепляет необходимые библиотеки. До установки моей программы я устанавливаю BDE-5, потому что раньше выскакивала ошибка:
“An error occurred while attempting to initialize the Borland Database Engine (error $2108)”
это я в инете прочел и скачал BDE5. Теперь при запуске в XP моя программа просто вылетает, а в Mellenium пишет ошибку:
“exception EDBEngine error in module VCLBDE50.bpl at 0000C2C6
Unknown database.
Alias: DefaultDD.”
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
28-09-2009 02:53
Конечно же большое спасибо за то, что предоставили вариант инсталляции БДЕ программно.
А по поводу того, что все парятся, что даже после установки БДЕ у них не запускается их программа,
то мой совет проверенный (над которым я тоже страдал не 1 день)
у вас просто не создан АЛИСАС в ODBC его можно зарегить таким вот способом,
К примеру если было создано соединение через "Paradox Driver (*.db )" то создаем фаил под любым
именем к примеру "ODBC Data Sources.reg" как видно у него разширение РЕГ
и прописываем в нем такой текст:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources]
"Paradox"="Microsoft Paradox Driver (*.db )"
После чего у вас в "Источники данных (ODBC)" появляется Алиас PARADOX....
Мде, много времени утекло с тех пор. :) Но может кому-то еще пригодится!
Вот не давно снова столкнулся с Парадоксом. Действительно парадоксальная СУБД :(
Майкрософтский ADO-ODBC не хочет с ним работать без БДЕ !!! Чудеса, да и только!
Решил, что уж лучше сразу через БДЕ идти к нему.
То есть копируя свою программу на другую машину, надо тащить с собой и пресловутый БДЕ.
Так же решил работать через альясы - для чего-то же их придумали! :)
Итак
- На дисках Дельфи в каталоге BDE есть файл bdeinst.cab
- Извлекаем из него bdeinst.dll (в командной строке C:\>extract.exe \bdeinst.cab или WinRARom, кому как удобнее)
- Кладем bdeinst.dll в каталог с нашей программой и в дальнейшем распространяем с ней
- в код проекта (НЕ МОДУЛЯ или ФОРМЫ, а Project -> View Source) пишем примерно следующее
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
program Project1;
uses
Windows, SysUtils, Forms, BDE, DBTables,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
var
SI: TStartupInfo;
P: TProcessInformation;
begin
if (DbiInit(nil) <> DBIERR_NONE) then
if Application.MessageBox('Для работы приложения требуется BDE.'#13#13'Установить данный компонент?', 'Внимание!', MB_APPLMODAL or MB_YESNO or MB_ICONQUESTION) = 6 then begin
FillChar(SI, SizeOf(SI), 0);
SI.cb := SizeOf(SI);
CreateProcess(nil, 'regsvr32 /s BdeInst.dll', nil, nil, False, CREATE_DEFAULT_ERROR_MODE, nil, nil, SI, P);
WaitForSingleObject(P.hProcess, INFINITE);
CloseHandle(P.hProcess);
CloseHandle(P.hThread);
SetForegroundWindow(Application.Handle);
end
else
Exit;
Session.ConfigMode := cmSession;
Session.AddStandardAlias('apteka', ExtractFilePath(ParamStr(0)) + 'BASE', 'PARADOX');
Session.ConfigMode := cmAll;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
----------------------------------------------------------------------------------------------------------------
Код тривиальный и 100%-рабочий. Сбоев пока нигде на наблюдал! :) Чего и Вам желаю!
У меня такая же проблема была с запуском своего приложения на компьютере без DBE. Самый простой способ это установить BDE - regsvr32 bdeinst.dll
Другой способ, как сделал я (мое приложение использует Paradox и SQL). Кладете свое приложение в папку с BDE и запускаете его, открыв БД. Далее удаляете те файлы которые ваше приложение не использует. У меня используются эти: IDR20009.DLL, bantam.dll, IDPDX32.DLL, IDAPI32.DLL, IDSQL32.DLL.
PS: для каждого приложения свои библиотеки, взависимости от типа БД и т.д. Мое без альясов.
Господа!
Благодарю ВСЕХ, кто откликнулся на мою проблему.
Вроде я разобрался сам… Постараюсь описать…
Для этого мне понадобились включить в инсталяшку, помимо библиотек BDE, которые указал Install Shield Professional:
BANTAM.DLL
IDAPI32.DLL
IDPDX32.DLL
IDR20009.DLL
файлы BDE:
CHARSET.CVB
EUROPE.BTL
и конечно IDAPI32.CFG!!!
Хоть я с алиасами и не работал, но как я смог понять - мой алиас DefaulDD, после его настройки все пошло… Только при этом мне понадобилась директория SampleDictionary с файлами:
BDESDD.DB
BDESDD.MB
BDESDD.PX
Честно до конца не знаю зачем, кто знает – просветите, но наверно он конфигурит алиас DefaulDD, НЕ ЗНАЮ…
Ну и конечно regsvr32 bdeinst.dll !!!!!!
Только после этих “нехитрых” манипуляций моя прога устанавливается на любой, хотелось бы в это верить), компьютер.
РАЗОЧЕРОВАЛО, что великий Install Shield Professional не может указать всех необходимых файлов, хотя я понял, что это наверно и не возможно.
СПАСИБО ВСЕМ!!!
А по теме вопроса: либо создайте алиас в БДЕ администраторе (и прописывайте его при инсталляции на целевую машину), либо с помощью TDatabase создавайте динамический алиас (тогда можно нигде его не прописывать - он будет создан при старте программы), и укажите используемый алиас в компонентах доступа к данным (TTable?).
28-11-2004 00:42 | Комментарий к предыдущим ответам
Замечательно, что у вас всё пока ничего, никаких AV, да и собственно у вас-то и ничего и не случится, а вот остальные...
Из своего опыта: мои программы работают с MS SQL, используется полная инсталляция BDE. Но появилась сторонняя оооооочень нужное прилолжение, работающее с INTERBASE посредством BDE, как раз вот таким образом усеченное и включенное в инсталляцию. И начинается... Когда моя программа первой запускается - всё отлично, все работают... Когда первым ЭТО ЧУДО стартует - ВСЁ, АЛЕС! Оно работает, но мои программы ни в какую - и у автора-то проблем никаких...
И это не единичный случай и не только у меня, это явление уже множество раз обсуждали в RU.DELPHI например, описано в различных FAQ.
Суть в том, что первое приложение инициализирует BDE, а запускающиеся следом используют уже загруженные библиотеки, среди которых только те, которые нужны автору приложения, запущенного первым. Соответственно, если следом запускается приложение, которому требуется библиотека отсутствующая в данной "инсталляции" BDE - пишите письма мелким почерком...
По-хорошему при инсталляции надо проверять наличие BDE, и устанавливать только при его отсутствии, а иначе хотя бы спросить пользователя...
Если придирается к алиасу, то может, тебе стоит его создать? Попробуй. А еще внимательно позыркай, может где-то у тебя алиас выбран этот, да стери. Или програмно очисти.
Люди большое спасибо за помощь! но не помогает, я делаю "regsvr32 bdeinst.dll", но ошибка
“exception EDBEngine error in module VCLBDE50.bpl at 0000C2C6
Unknown database.
Alias: DefaultDD.”
всеравно остается :(((
только вот такая фишка-
я устаналиваю Delphi5, в которой прогу и делал, и установленная через Install Shield моя программа НОРМАЛЬНО запускается!!!Деинсталирую Delphi и опять та же картина:(
Неужели я что-то не так делаю???
25-11-2004 14:27 | Комментарий к предыдущим ответам
Кстати, AG. Я юзаю этот способ уже не первый год и пока ничего, никаких AV... Главное - нужно точно знать, какие дллки нужны. Используется ли скуел, какие таблицы используются. Ничего криворукого не наблюдаю:(
Все эти файлы(если не юзаешь алиасы) нужно кинуть в ту же папку, что и ехешка - и все будет работать, не надо будет нигде ничего регистрировать.
А вообще, возьми дллку bdeinst.dll скопируй на жесткий и в командной строке:
regsvr32 bdeinst.dll - и все автоматически сделается.
Люди, так что ж мне делать?
я вроде с алиасами и не работаю!?:(
Может инсталяция BDE и впрямь "криворукая",
в принципе Install Shield включяет в мою инсталяшку библиотеки BDE:
IDAPI32.DLL
bantam.dll
IDPDX32.DLL
IDR20009.DLL
и кладет их по адресу "x:\program files\common files\borland shared\bde" но это не помогает...
25-11-2004 08:54 | Комментарий к предыдущим ответам
А БДЕ ставить не обязательно весь - достаточно нескольких библиотек и файлов:
За такие советы убивать надо... Перестаньте думать только о себе - а если кто-нибудь попытается использовать свою программу, использующую BDE, с такой криворукой инсталляцией BDE? AV его ожидает...
Алиасы тоже необязательно создавать. Чем компонент TDataBase не угодил?
Работаешь с алиасами? И наверняка алиас не создал... Могу подкинуть примерчик, как програмно создавать. А БДЕ ставить не обязательно весь - достаточно нескольких библиотек и файлов:
CHARSET.BLL
OTHER.BLL
IDAPI32.CFG
BLW32.DLL
IDAPI32.DLL
IDBAT32.DLL
IDPDX32.DLL
IDR20009.DLL
IDSQL32.DLL
BDEADMIN.EXE - по вкусу, т.к. необходимым не является.
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.