Schließen der DBs im Fehlerfall

11/11/2008 - 10:30 von Susann Markward | Report spam
Hallo,

normalerweise öffnet man, wenn man auf eine Access-DB zugreifen will, ja
nur bei Programmstart die Connection und das Recordset zu der DB.
Wàhrend der Laufzeit des Programms greift man dann auf alle möglichen
Tabellen und Datensàtze zu.

Nun besteht ja ein komplexeres Programm aus vielen Modulen und Formen.

Meine Fragen:
1) Vorausgesetzt es gibt mehrere Formen, welche auf dieselbe DB
zugreifen, jedoch bei weitem nicht alle Formen machen dies. Öffnet man
(sollte man) in diesem Fall wirklich bei *Programmstart* *ALLE*
Connections und Recordsets öffnen, oder beim Öffnen der jeweiligen Form?
Und bei Beendigung der Form wieder schließt man diese wieder?

2) Nun gibt es ja innerhalb einer Form viele Funktionen und Prozeduren,
Zugriff auf Klassen, etc. Wenn jetzt innerhalb einer dieser Funktionen,
Prozeduren, etc. ein Laufzeitfehler auftreten sollte schlàgt ja
eigentlich immer die Fehlerbehandlung der jeweiligen Funktion, Prozedur,
etc. zu. Muss ich dann in *JEDE* dieser Fehlerbehandlungen jeder
Funktion, Prozedur, etc. das Schließen der DBs mit aufnehmen? Oder kann
man das anders lösen?
Falls man die DBs ja nicht schließt, bleiben sie a) geöffnet, b) werden
die Werte ja nicht in die DB zurückgeschrieben und c) kann der Kunde die
DB beim Neustart des Programms ja nicht öffnen und das Programm kann
nicht richtig arbeiten.

Fragen über Fragen. MfG
Susann
 

Lesen sie die antworten

#1 Wilfried Dietrich
11/11/2008 - 11:02 | Warnen spam
Hallo Susann,

normalerweise öffnet man, wenn man auf eine Access-DB zugreifen will, ja
nur bei Programmstart die Connection und das Recordset zu der DB.


Nein, nur die Connection mit einer Fehlerbehandlung nicht die RS, ausser
man benötigt danach sofort eins.

Nun besteht ja ein komplexeres Programm aus vielen Modulen und Formen.

Meine Fragen:
1) Vorausgesetzt es gibt mehrere Formen, welche auf dieselbe DB
zugreifen, jedoch bei weitem nicht alle Formen machen dies. Öffnet man
(sollte man) in diesem Fall wirklich bei *Programmstart* *ALLE*
Connections und Recordsets öffnen, oder beim Öffnen der jeweiligen Form?
Und bei Beendigung der Form wieder schließt man diese wieder?


Wie Oben.
Bei Programmstart wird nur die Connection geöffnet und in deinen Forms
und Klassen, dann die benötigten Recordsets mit einer Fehlerbehandlung.
Sollte beim Öffnen, Speichern oder Schliessen eines RS ein Fehler auftreten,
dann kümmerst Du Dich nur um das RS bzw. dessen Fehler.

2) Nun gibt es ja innerhalb einer Form viele Funktionen und Prozeduren,
Zugriff auf Klassen, etc. Wenn jetzt innerhalb einer dieser Funktionen,
Prozeduren, etc. ein Laufzeitfehler auftreten sollte schlàgt ja
eigentlich immer die Fehlerbehandlung der jeweiligen Funktion, Prozedur,
etc. zu. Muss ich dann in *JEDE* dieser Fehlerbehandlungen jeder
Funktion, Prozedur, etc. das Schließen der DBs mit aufnehmen? Oder kann
man das anders lösen?


S.o.. Nur die RS behandeln.

Falls man die DBs ja nicht schließt, bleiben sie a) geöffnet, b) werden
die Werte ja nicht in die DB zurückgeschrieben und c) kann der Kunde die
DB beim Neustart des Programms ja nicht öffnen und das Programm kann
nicht richtig arbeiten.


Die DB (Connection) schliesst Du zum Programmende egal ob irgendwann
ein Fehler bei deinen RS aufgetreten ist. Wenn ein Fehler beim Öffnen / Speichern
eines RS auftritt, behandelst Du ihn gleich in der Form, Modul bzw. Klasse und erst
dann beendest Du, wenn gewünscht, Dein Programm und da meldest Du die DB ab
in dem Du die Connection ordnungsgemàß schliesst.

Gruß
Wilfried

Ähnliche fragen