Jak zainstalować sterowniki BDE z poziomu Delphi

B-A-D

W tym artykule opiszę jak zainstalować sterowniki Borland Database Engine z poziomu Delphi. Od razu zaznaczam, że jest to niezgodne z licencją, jeżeli nie instalujemy ich z poziomu programów InstallShield lub Wise, jednak są to programy komercyjne i drogie.

Do instalacji będą potrzebne dwa pliki:
*regsvr32.exe (C:\Windows\System32),
*BdeInst.dll (C:\Program Files\Common Files\Borland Shared).
Plik BdeInst.dllod razu skopiuj do folderu z Twoim programem.

Kod źródłowy:

uses
  BDE, ShellAPI;

function BDEInstalled(): Boolean;
begin
  Result := (dbiInit(nil) = 0);
end;

//w zdarzeniu OnShow Formy (zakładka Events)
procedure TForm1.FormShow(Sender: TObject);
var S, Path: String;
    Result: Integer;
begin
  if not BDEInstalled then
    Case MessageDlg('BDE nie jest zainstalowane. Zainstalować BDE teraz?', mtCustom, [mbYes, mbNo], 0) of
      mrYes: 
        begin
          S := 'regsvr32.exe';
          Path := ExtractFilePath(Application.ExeName);
          Result := ShellExecute(Handle, 'open', PChar(S), '/S bdeinst.dll', PChar(Path), SW_SHOW);
          if Result < 33 then ShowMessage('Błąd! Przeinstaluj BDE.')
        end;
    end;
end;

Przy uruchomieniu Twojego programu wyskoczy okienko dialogowe z zapytaniem o zainstalowanie BDE. Oczywiście stanie się to, gdy powyższy kod rozpozna brak sterowników BDE w systemie. Po zainstalowaniu ich, uruchom swój program ponownie.

Cały kod programu:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, BDE, ShellAPI;

type
  TForm1 = class(TForm)
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function BDEInstalled(): Boolean;
begin
  Result := (dbiInit(nil) = 0);
end;

procedure TForm1.FormShow(Sender: TObject);
var S, Path: String;
    Result: Integer;
begin
  if not BDEInstalled then
    Case MessageDlg('BDE nie jest zainstalowane. Zainstalować BDE teraz?', mtCustom, [mbYes, mbNo], 0) of
      mrYes: 
        begin
          S := 'regsvr32.exe';
          Path := ExtractFilePath(Application.ExeName);
          Result := ShellExecute(Handle, 'open', PChar(S), '/S bdeinst.dll', PChar(Path), SW_SHOW);
          if Result < 33 then ShowMessage('Błąd! Przeinstaluj BDE.')
        end;
    end;
end;

Zobacz też:

4 komentarzy

Nie wiem dlaczego, ale za każdym razem wyświetla się komunikat o braku wystarczającego miejsca na dysku (niezależnie czy jest 1 GB czy wiecej wolnego). Nie brakuje jakiegoś parametru?

Skąd mogę wziąść BDE.dcu ?

Spotykam się często z takimi stwierdzeniami od programistów jak i w sieci w różnych FAQ'ach, forach itd. A jeśli to jest nieprawda to z góry przepraszam za wprowadzenie w błąd. Napewno byłoby lepiej, gdyby nie było to zawarte w licencji, chociaż bdeinst.dll jako sterownik borlandowski baz danych pewnie zdaniem Panów z Borlanda powinien być instalowany wraz z programami do instalek pochodzącymi od nich, a inne takie programy to już nielegalne :)
Pozdrawiam!

Hmm... dlaczego niezgodne z licencja? Naprawde tak jest napisane??