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ż:
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??