RS.State...RS.Close

06/02/2009 - 11:19 von Wilfried Dietrich | Report spam
Als ich mit VB angefangen habe, habe ich folgenden Code verwendet:
If RS.State = adStateOpen Then RS.Close

Dann habe ich irgendwann erfahren das es auch kombinierte Werte
im Status geben kann. Nun verwende ich nur noch:
If (RS.State And adStateOpen) = adStateOpen Then RS.Close

Jetzt meine (Prinzip-)Frage.
Könnte man nicht einfach folgenden, kürzeren Vergleich verwenden?
If RS.State <> adStateClosed Then RS.Close
Oder denke ich da jetzt falsch bzw. bedenke ich da etwas nicht?

Danke im voraus.
Gruß
Wilfried
 

Lesen sie die antworten

#1 Ralf Schrader
07/02/2009 - 08:53 | Warnen spam
Wilfried Dietrich schrieb

Jetzt meine (Prinzip-)Frage.
Könnte man nicht einfach folgenden, kürzeren Vergleich verwenden?
If RS.State <> adStateClosed Then RS.Close



Sicher

If RS.State > adStateClosed Then RS.Close

geht auch, erschliesst sich beim Wiederlesen nur nicht. Nur wozu das alles?
Genau genommen ist

If RS.State = adStateOpen Then RS.Close

das Beste. Da weiss man, das das Recordset offen und passiv ist. Bei allen
anderen theoretisch möglichen Staten passiert gerade etwas, das sollte man
das Recordset nicht abwürgen, sondern in einer Schleife warten, bis die
Aktivitàt beendet ist. Nur weiss man das als Programmierer eigentlich
vorher, weil man z.B. asynchrone Operation ja selbst veranlasst hat.

Ralf

Ähnliche fragen