Seite 1 von 1

PB 4.2, Tabellen auslesen aus MS Access

Verfasst: 19.07.2008 17:05
von manibaerchen
Hallo Zusammen,

wahrscheinlich habe ich eine ziemlich d.... frage, ich möchte für
einen Querymanager der unter anderen Oracle, Postgre, Mysql kann auch
die "Datenbank" Access bewerkstelligen.

Mein Problem ist, wie kann ich über ODBC (ohne ADO/ DAO)
auslesen welche Tabellen und Tabellenstrukur in der Access DB
enthalten ist ? Wie z.b. mit Mysql "show tables) ?

Danke für jede Info

Mani

Verfasst: 19.07.2008 17:15
von ts-soft
ExDataBase sollte helfen, in PBOSL enthalten, siehe meine Signatur

Gruß
Thomas

Verfasst: 19.07.2008 18:04
von manibaerchen
Hallo,

danke für den Tipp, aber leider ist das nur die halbe Geschichte.
Gibt es neben den Befehl in PBOSL "ExamineTables" auch
die Möglichkeit die Spalte und Typen einer Tabelle auszulesen
Wie in Mysql z.b. "desc xxx"

Vielen Dank

Mani

Verfasst: 19.07.2008 18:43
von mk-soft
Nachdem die Datenbank geöffnet wurde und ein "Select * from ..." ausgeführt wurde kann man mit "DatabaseColumnName()" die Namen auslesen.

Siehe mal nach Database in der Hilfe von PB nach.

FF :wink:

Verfasst: 20.07.2008 11:47
von manibaerchen
Vielen Dank für den Tipp.

Nur bei einer DB mit mehreren zehntausenden Datensätzen dauert es ziemlich lange alle Tabelle mit select * from xxx abzufragen, um nur
die Struktur auslesen zu können.

Vielleicht gibt es noch einen anderen Trick ?

Vielen Dank
Mani

Verfasst: 20.07.2008 13:28
von marco2007
manibaerchen hat geschrieben:zehntausenden Datensätzen

Meinst Du Reihen oder Spalten? Spalten kann man (glaube ich) nur 256 pro Tabelle anlegen -> und das Auslesen geht dann eh schnell.

Verfasst: 20.07.2008 13:33
von manibaerchen
Hallo,

sorry !
vermutlich habe ich mich nicht korrekt ausgedrückt.
Ich möchte aus einer "Access DB" allen Tabellen und deren Spalten
mit typen (z.B: varchar, int, etc) auslesen.

Die Tabellen bekomme ich mit dem ExDatabase in PBOSL. Aber
die einzelenen Spalten nicht. Aber jede Tabelle mit einem
select * from xxx abzufragen um die Spalten zu bekommen erscheint mir
nicht performant, vorallen wenn es großen Tabellen sind !

Vielen Dank
Mani

Verfasst: 20.07.2008 14:49
von marco2007
Es reicht doch eine Reihe zu durchlaufen.

Verfasst: 20.07.2008 14:57
von - chris -
z.B:

SELECT TOP 1 * FROM xxx

Dann mit:

DatabaseColumnName

DatabaseColumnType

auf die Informationen zugreifen.