DELPHI FAQ: Как установить BDE?


Как установить BDE?
Previous  Home  Next



program
 InstallPrfSt;

{
Программа иллюстрирует, как установить BDE с поддержкой PARADOX 7.0
на "чистой машине" и создать алиас.
Пример использования в качестве простейшего инсталлятора для программы
C:\MyDir\MyProg.exe
1.Создайте каталог C:\MyDir\BDE и скопируйте в него след. файлы:
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_MACHINE\SOFTWARE\Borland\Database Engine] и
[HKEY_LOCAL_MACHINE\SOFTWARE\Borland\BLW32].
}


{$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
 = 'SOFTWARE\Borland';
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 Engine\Settings\SYSTEM\INIT'
,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 Engine\Settings\SYSTEM\FORMATS\DATE'
,True);
    WriteString('FOURDIGITYEAR'
'TRUE');
    WriteString('LEADINGZEROD'
'FALSE');
    WriteString('LEADINGZEROM'
'FALSE');
    WriteString('MODE'
'1');
    WriteString('SEPARATOR'
'.');
    WriteString('YEARBIASED'
'TRUE');
    CloseKey;
    OpenKey(Bor+'\Database Engine\Settings\SYSTEM\FORMATS\NUMBER'
,True);
    WriteString('DECIMALDIGITS'
'2');
    WriteString('DECIMALSEPARATOR'
',');
    WriteString('LEADINGZERON'
'TRUE');
    WriteString('THOUSANDSEPARATOR'
' ');
    CloseKey;
    OpenKey(Bor+'\Database Engine\Settings\SYSTEM\FORMATS\TIME'
,True);
    WriteString('AMSTRING'
'AM');
    WriteString('MILSECONDS'
'FALSE');
    WriteString('PMSTRING'
'PM');
    WriteString('SECONDS'
'TRUE');
    WriteString('TWELVEHOUR'
'TRUE');
    CloseKey;
    OpenKey(Bor+'\Database Engine\Settings\REPOSITORIES'
,True);
    CloseKey;
    OpenKey(Bor+'\Database Engine\Settings\DRIVERS\PARADOX\INIT'
,True);
    WriteString('LANGDRIVER'
'ancyrr');
    WriteString('TYPE'
'FILE');
    WriteString('VERSION'
'1.0');
    CloseKey;
    OpenKey(Bor+'\Database Engine\Settings\DRIVERS\PARADOX\TABLE
    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
.


Взято с www.delphiworld.narod.ru




DELPHI FAQ




EOMY TOP 100      Рейтинг@Mail.ru      Rambler's Top100