Programowanie w języku Delphi » FAQ

Jak zainstalować sterowniki BDE z poziomu Delphi

  • 2012-03-02 18:32
  • 4 komentarze
  • 2933 odsłony
  • Oceń ten tekst jako pierwszy
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 komentarze

RedFord 2008-05-17 07:25

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?

MikiKam 2007-02-18 13:32

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

B-A-D 2006-01-31 16:02

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!

Adam Boduch 2006-01-31 13:36

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