Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.250.169] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте.
Скажите, пожалуйста, как с помощью Inno Setup установить BDE, какие файлы для этого нужны? Возможно ли при инсталяции создать алиас для базы данных, которую использует устанавливаемая программа? Как это сделать? |
Сообщ.
#2
,
|
|
|
1. Качаем MiniReg.exe.
2. Находим BDEINST.CAB в Program Files\Common Files\Borland Shared\BDE и извлекаем из него BDEINST.DLL. 3. Добавляем такие строчки в скрипт [Files] Source: "MiniReg.exe"; DestDir: "{tmp}" Source: "BdeInst.dll"; DestDir: "{tmp}" [Run] Filename: "{tmp}\MiniReg.exe"; Parameters: """{tmp}\BdeInst.dll""" 4. Пишем такой скрипт procedure CreateAlias; const FDbDriver = 'PARADOX'; //Тип базы. SubDir = 'Data'; //Директория внутри папки установки программы. var FAlias: string; FAliasDir: string; begin FAlias := 'aLog2000'; //Название базы. Session.ConfigMode := cmPersistent; if not Session.IsAlias(FAlias) then begin FAliasDir := ExtractFilePath(ParamStr(0)) + SubDir; Session.AddStandardAlias(FAlias, FAliasDir, FDbDriver); Session.SaveConfigFile; end; end; |
Сообщ.
#3
,
|
|
|
Profi, спаисбо, очень выручил.
Прош упрощения за наглость, а как узнать установленна ли BDE на машине и её версию? |
Сообщ.
#4
,
|
|
|
Timof Ты узнал как проверить установлена ли BDE?
|
Сообщ.
#5
,
|
|
|
Цитата Vince Carter @ Timof Ты узнал как проверить установлена ли BDE? К сожалению, нет. Знаю только что надо проверить наличие каких-то файлов, либо посмотреть где-то в реестре. Ничего конкретного. |
Сообщ.
#6
,
|
|
|
Timof
на счёт инсталятора, метод Profi конечно хорош, но он при установке требует от пользователя установить саму BDE, как бы это правильно выразиться, что то своего рода получается инсталляор в инсталляторе, ни есть хорошо... так вот, я предлагаю сделать так [Files] ; files for BDE Source: "BDE\*"; DestDir: "{cf}\Borland Shared\BDE\"; Flags: uninsneveruninstall replacesameversion onlyifdoesntexist список файлов, которые ты должен поместить в папку BDE Цитата bantam.dll blw32.dll charset.cvb idapi32.cfg idapi32.dll idasci32.dll idbat32.dll iddr32.dll idpdx32.dll idr20009.dll idsql32.dll other.btl и всё.. да и ещё, метод Profi ещё тем плох, что при такой установке, заменяются все файлы и в реестре, а основной заменяется idapi32.cfg, где храняться все альянсы.. а это не очень хорошо для тех прог, которые при старте программы не проверяют наличие альянса... был такой случай, у моего клиента из за этого база рухнула... так что выбирать тебе... Цитата Ты узнал как проверить установлена ли BDE проверку этого можно сделать в самом приложении... например так function CheckBDEInstalled: Boolean; begin Result := (dbiInit(nil) = DBIERR_NONE) end; if CheckBDEInstalled then //тут что то твоё/// else begin if Application.MessageBox('На вашем компьютере не уставновлена BDE!!!' + #10#13 + 'Работа программы будет прервана!!!','Ошибка!!!', MB_OK + MB_ICONERROR) = IDOK then halt; |
Сообщ.
#7
,
|
|
|
dron-s Так что если просто скопировать эти файлы так то в панели управления появится BDE Administrator?
|
Сообщ.
#8
,
|
|
|
И так, еще один вариант (дополненный вариант dron-s'а):
Качаем прикрепленный архив и извлекаем из него CheckBDE.dll, например, в MyDll. Копируем все указанные dron-s'ом файлы, а именно bantam.dll blw32.dll charset.cvb idapi32.cfg idapi32.dll idasci32.dll idbat32.dll iddr32.dll idpdx32.dll idr20009.dll idsql32.dll other.btl [Files] Source: BDE\*; DestDir: {cf}\Borland Shared\BDE; Flags: uninsneveruninstall replacesameversion onlyifdoesntexist; Check: InstallBDE Source: MyDll\CheckBDE.dll; Flags: dontcopy [Code] Function CheckBDE:boolean; external 'CheckBDEInstalled@files:CheckBDE.dll stdcall'; var First:boolean; BDEInstall:boolean; function InitializeSetup(): Boolean; begin First:=true; Result:=true; end; Function InstallBDE:boolean; begin if First then begin Result:=false; if not CheckBDE then begin if MsgBox('У вас не установлена BDE!'#13'Установить?',mbConfirmation,MB_YESNO)=IDYES then Result:=true; end; BDEInstall:=result; First:=false; end else Result:=BDEInstall; end; Прикреплённый файлCheckBDE.zip (57.77 Кбайт, скачиваний: 501) |
Сообщ.
#9
,
|
|
|
Profi
архив битый!!! перезалей ещё раз!!! точно также можно проверять и версию BDE и версию копируемых файлов, и если версия копируемого файла ниже того что уже существует вывводить сообщение об этом, если выше или файлов вообще нет, то просто копировать или заменять файлы... |
Сообщ.
#10
,
|
|
|
Цитата dron-s @ Profi архив битый!!! перезалей ещё раз!!! Хм, у меня нормально качаеться и нормально извлекаеться. Цитата dron-s @ точно также можно проверять и версию BDE и версию копируемых файлов, и если версия копируемого файла ниже того что уже существует вывводить сообщение об этом, если выше или файлов вообще нет, то просто копировать или заменять файлы... В Inno Setup при помощи dll можно все! |
Сообщ.
#11
,
|
|
|
Profi
вот я скачала архив, пытаюсь его разархивировать, а мне архиватор в ответ кричит Цитата Архив поврежден или имеет неизвестный формат Цитата В Inno Setup при помощи dll можно все! а вот про это можно по подробнее? |
Сообщ.
#12
,
|
|
|
Цитата dron-s @ а вот про это можно по подробнее? А что тут может быть подробнее? Не можешь что-то сделать в Inno Setup? Делаешь в Delphi или C dll которая делает то, что тебе надо и все! |
Сообщ.
#13
,
|
|
|
Цитата Делаешь в Delphi или C dll которая делает то, что тебе надо и все! оригинально!!!! |