Home » Tutorials » Datenbanken » Flexible ADO-Connection zur Ansteuerung einer Access-Datenbank
Flexible ADO-Connection zur Ansteuerung einer Access-Datenbank
Konfiguration
Nun kann man das schon mal zur Laufzeit ausprobieren. Dazu im Menü des Hauptformulars den Eintrag „Datenbank Konfiguration“ hinzufügen mit dem Ereignis:
procedure TForm1.DatenbankKonfiguration1Click(Sender: TObject); var DSN: string; begin if DataModule2.EditMeineAnwendungDSN(DSN) then begin MessageDlg('Der DSN konnte erfolgreich geändert werden', mtInformation, [mbOK], 0); WriteDSNToRegistry(DSN); end else MessageDlg('Der DSN konnte nicht geändert werden', mtError, [mbOK], 0); end;
Der Benutzer kann also jetzt bereits zur Laufzeit die Datenbank neu auswählen. Nun müssen wir nur noch beim Öffnen der Anwendung dafür sorgen, dass die DSN aus der Registry geholt wird, und beim Schließen wieder zurückgeschrieben wird; bzw. falls die Datenbank nicht geöffnet werden kann, soll sich der Dialog zur Eingabe durch den Benutzer öffnen.
Dazu legen wir die Ereignisse OnShow bzw. OnClose des Hautformulars an:
procedure TForm1.FormShow(Sender: TObject); var DSN: string; begin if ReadDSNFromRegistry(DSN) then begin if DataModule2.SetMeineAnwendungDSN(DSN) then if not DataModule2.OpenDatabase then begin MessageDlg('Es konnte keine Verbindung zur Datenbank '+ 'aufgebaut werden.', mtError, [mbOK], 0); DatenbankKonfiguration1Click(Sender); end; end else if not DataModule2.OpenDatabase then begin MessageDlg('Es konnte keine Verbindung zur Datenbank '+ 'aufgebaut werden.', mtError, [mbOK], 0); DatenbankKonfiguration1Click(Sender); end else begin MessageDlg('Es konnte keine DSN ausgelesen werden.', mtError, [mbOK], 0); DatenbankKonfiguration1Click(Sender); end; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin WriteDSNToRegistry(DataModule2.GetMeineAnwendungDSN); DataModule2.CloseDatabase; end;