myReadernpgsql.Read()

Hallo zusammen,

gibt es eine Möglichkeit diese 3 Möglichkeiten zu verallgemeinern?

Do While myReadernpgsql.Read()
Do While myReaderodbc.Read()
Do While myReaderoledb.Read()

Momentan habe ich es so gelöst: (aber langsam und unschön:mad :slight_smile:

Select Case zugriffsmethode '1=postgres,2=odbc,3=oledb
Case 1
Do While myReadernpgsql.Read()
GoTo zeilenauslesen
zeilenauslesen_back1:
Loop
Case 2
Do While myReaderodbc.Read()
GoTo zeilenauslesen
zeilenauslesen_back2:
Loop
Case 3
Do While myReaderoledb.Read()
GoTo zeilenauslesen
zeilenauslesen_back3:
Loop
End Select
GoTo nach_zeilenauslesen

zeilenauslesen:
** umfangreicher Code **
goto zeilenauslesen_back1 (bzw. 2 oder 3)
nach_zeilenauslesen:

Ich weiß nicht genau, wie ich mein Problem beschreiben soll, aber ich denke man könnte es sich zusammenreimen.
Über Euere Hilfe und Tips wäre ich sehr dankbar!

YO, scheint mir auch so :wink:

Das ist doch visual basic (oder?), wieso dann so kompliziert?

Wenn ich es richtig verstehe, dann versuchst du eine klasse(?) zu schaffen, die irgendwelche Meta-Datenzugriffe handelt.

Wieso nutzt du nicht für alle Zugriffsmethoden ODBC (wenn nötig zur Laufzeit erzeugt) und übergibst dann z.B. nur noch die odbc-definition an deine Funktion/Klasse?

Am besten du beschreibst mal, was du eigentlich vorhast mit dem Code. Allerdings bin ich mir nicht recht sicher, ob du nicht in einem vb(a)-Forum besser aufgehoben wärst


Grüße

Jochen

Hallo,
Du hast mein Problem schon verstanden…
Ich möchte auf verschiedenen Zugriffswegen auf verschiedene Datenbanken (ca. 30) zugreifen. Also npgsql,odbc und oledb.
Die Verbindungsdaten werden zur Laufzeit erzeugt, und es klappt auch so mit meiner umständlichen Lösung.
Ich wollte nur fragen, ob jemand eine elegantere und vor allem schnellere Lösung weiß.
Danke & Gruß

nunja, auch wenn dies hier kein vb forum ist :

Dein eleganter Weg könnte wiefolgt aussehen

1.) Verbindungsdaten erzeugen
2.) Datenbankobject öffnen
3.) Datenbankobject byref an Meta-Lesefunktion oder -Klasse übergeben
4.) in Metalesefunktion/klasse dürfte ja dann jede DB gleich zu behandeln sein
5.) alle gotos loschen :slight_smile:

Viele Späße