Flexible ADO-Connection zur Ansteuerung einer Access-Datenbank
Verbindung aufbauen
Es geht darum, dem Benutzer zu ermöglichen, diese Verbindung zu ändern, z.B. weil er die .mdb verschoben hat oder zwischen mehreren Datenbanken wechseln will und, evtl. auch beim ersten Start, wenn wir den DSN nicht über die Installationsroutine erzeugen wollen.
Als erstes fügen wir in der MainUnit ganz oben unter uses unser Datenmodul ein:
uses ..., DatenmodulUnit;
Dann sollten wir mal das Öffnen und Schließen der Datenbank testen: Dazu werden wir zwei Funktionen im Datenmodul unter public einfügen:
public { Public declarations } function OpenDatabase: Boolean; function CloseDatabase: Boolean; ... function TDataModule2.OpenDatabase: Boolean; begin OpenDatabase:=true; try ADOConnection1.Open; except OpenDatabase:=false; end; end; function TDataModule2.CloseDatabase: Boolean; begin CloseDatabase:=true; try ADOConnection1.Close; except CloseDatabase:=false; end; end;
Die beiden Prozeduren können wir jetzt über das Menü im Hauptformular aufrufen. Dazu sollten wir erst einmal eine TMainMenu-Komponente in das Formular einfügen und die Items OpenDatabase und CloseDatabase anlegen. Das dürfte aber niemanden vor ein Problem stellen.
procedure TForm1.OpenDatabaseClick(Sender: TObject); begin if DataModule2.OpenDatabase then MessageDlg('Die Datenbank konnte erfolgreich geöffnet werden', mtInformation, [mbOK], 0) else MessageDlg('Die Datenbank konnte nicht geöffnet werden', mtError, [mbOK], 0); end; procedure TForm1.CloseDatabaseClick(Sender: TObject); begin if DataModule2.CloseDatabase then MessageDlg('Die Datenbank konnte erfolgreich geschlossen werden', mtInformation, [mbOK], 0) else MessageDlg('Die Datenbank konnte nicht geschlossen werden', mtError, [mbOK], 0); end;
Das sollte funktionieren. Einfach mal testen.