Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
program InstallPrfSt; { Программа иллюстрирует, как установить BDE с поддержкой PARADOX 7.0 на "чистой машине" и создать алиас. Пример использования в качестве простейшего инсталлятора для программы C:MyDirMyProg.exe 1.Создайте каталог C:MyDirBDE и скопируйте в него след. файлы: CHARSET.BLL OTHER.BLL IDAPI32.CFG BLW32.DLL IDAPI32.DLL IDBAT32.DLL IDPDX32.DLL IDR20009.DLL IDSQL32.DLL BDEADMIN.EXE - по вкусу, т.к. необходимым не является. 2.Измените значение константы AliasName на имя необходимого вам алиаса. 3.Откомпиллируйте и запустите эту программу из каталога C:MyDir. ВHИМАHИЕ!!! Если на машине уже установлено BDE, то перед экспериментами сохраните (на всякий случай) след. ключи из реестра: [HKEY_LOCAL_MACHINESOFTWAREBorlandDatabase Engine] и [HKEY_LOCAL_MACHINESOFTWAREBorlandBLW32]. } {$APPTYPE CONSOLE} uses Windows, BDE, Registry; const AliasName: string = 'PrefStat'; var R: DBIResult; Path: string; procedure WriteString(S1:string); begin S1 := S1 + #0; AnsiToOem(@S1[1], @S1[1]); writeln(S1); end; function GetExePath(S1:string):string; var I, K :Integer; S: string; begin K := 1; S := ''; for I := Length(S1) downto 1 do begin if S1[I] = '' then begin K := I; Break; end; end; for I := 1 to K - 1 do S := S + S1[I]; Result:=S; end; procedure InstallBde; const Bor: string = 'SOFTWAREBorland'; var a: TRegistry; BPath: string; begin BPath:=PATH + 'BDE'; a := TRegistry.Create; with a do begin RootKey := HKEY_LOCAL_MACHINE; OpenKey(Bor + 'Database Engine', True); WriteString('CONFIGFILE01', BPath+'IDAPI32.CFG'); WriteString('DLLPATH', BPath); WriteString('RESOURCE', '0009'); WriteString('SaveConfig', 'WIN32'); WriteString('UseCount', '2'); CloseKey; OpenKey(Bor+'BLW32',True); WriteString('BLAPIPATH', BPath); WriteString('LOCALE_LIB3', BPath+'OTHER.BLL'); WriteString('LOCALE_LIB4', BPath+'CHARSET.BLL'); CloseKey; OpenKey(Bor+'Database EngineSettingsSYSTEMINIT',True); WriteString('AUTO ODBC', 'FALSE'); WriteString('DATA REPOSITORY', ''); WriteString('DEFAULT DRIVER', 'PARADOX'); WriteString('LANGDRIVER', 'ancyrr'); WriteString('LOCAL SHARE', 'FALSE'); WriteString('LOW MEMORY USAGE LIMIT', '32'); WriteString('MAXBUFSIZE', '2048'); WriteString('MAXFILEHANDLES', '48'); WriteString('MEMSIZE', '16'); WriteString('MINBUFSIZE', '128'); WriteString('SHAREDMEMLOCATION', ''); WriteString('SHAREDMEMSIZE', '2048'); WriteString('SQLQRYMODE', ''); WriteString('SYSFLAGS', '0'); WriteString('VERSION', '1.0'); CloseKey; OpenKey(Bor+'Database EngineSettingsSYSTEMFORMATSDATE',True); WriteString('FOURDIGITYEAR', 'TRUE'); WriteString('LEADINGZEROD', 'FALSE'); WriteString('LEADINGZEROM', 'FALSE'); WriteString('MODE', '1'); WriteString('SEPARATOR', '.'); WriteString('YEARBIASED', 'TRUE'); CloseKey; OpenKey(Bor+'Database EngineSettingsSYSTEMFORMATSNUMBER',True); WriteString('DECIMALDIGITS', '2'); WriteString('DECIMALSEPARATOR', ','); WriteString('LEADINGZERON', 'TRUE'); WriteString('THOUSANDSEPARATOR', ' '); CloseKey; OpenKey(Bor+'Database EngineSettingsSYSTEMFORMATSTIME',True); WriteString('AMSTRING', 'AM'); WriteString('MILSECONDS', 'FALSE'); WriteString('PMSTRING', 'PM'); WriteString('SECONDS', 'TRUE'); WriteString('TWELVEHOUR', 'TRUE'); CloseKey; OpenKey(Bor+'Database EngineSettingsREPOSITORIES',True); CloseKey; OpenKey(Bor+'Database EngineSettingsDRIVERSPARADOXINIT',True); WriteString('LANGDRIVER', 'ancyrr'); WriteString('TYPE', 'FILE'); WriteString('VERSION', '1.0'); CloseKey; OpenKey(Bor+'Database EngineSettingsDRIVERSPARADOXTABLE CREATE',True); WriteString('BLOCK SIZE', '4096'); WriteString('FILL FACTOR', '95'); WriteString('LEVEL', '7'); WriteString('STRICTINTEGRTY', 'TRUE'); CloseKey; end; a.Free; end; begin Path:=GetExePath(ParamStr(0)); R:=dbiInit(nil); if R<>DBIERR_NONE then begin WriteString('Инициализация BDE ...'); InstallBDE; end; R:=dbiInit(nil); if R=DBIERR_NONE then begin WriteString('Инициализация BDE прошла успешно'); DbiDeleteAlias(nil, PChar(AliasName)); R:=DbiAddAlias(nil, PChar(AliasName), szPARADOX, PChar('PATH:'+Path+'DB'), True); if R=DBIERR_NONE then WriteString('Псевдоним "'+AliasName+'" создан') else WriteString('Ошибка создания псевдонима "'+AliasName+'"'); R:=DbiCfgSave(nil, nil, Bool(-1)); if R=DBIERR_NONE then WriteString('Файл конфигурации сохранён') else WriteString('Ошибка сохранения файла конфигурации'); DbiExit; end else WriteString('Ошибка инициализации BDE'); end.