Seite 1 von 1

Spalten von Datentabelle per Makro auslesen

Verfasst: Fr, 12.02.2021 09:41
von Stephan
Hallo,

ich habe eine DAtenbankdatei (*.odb) geöffnet und verwende testweise folgenden Code:

Code: Alles auswählen

Msgbox Thiscomponent.DataSource.Tables.getByIndex(0).Columns.Count
Dieser Code liefert jedoch teils falsche ERgebnisse, d.h. es wird teils 0 teils eine zu niedrige Zahl für die Spalten angezeigt.

Das geschieht sowohl für Datemnbanken mit internener HSQLDB wie auch per ODBC verknüpfte MySQL-Datenbanken.

Für z.B. die mitgelieferte Datenbank Biblio ergibt sich ebenfalls ein anders komisches Ergebnis, denn:

Code: Alles auswählen

Msgbox Thiscomponent.DataSource.Tables.Count
liefert 2, obwohl Biblio ja nur eine Tabelle hat.



Was mache ich falsch oder was ist an der API defekt?

Mein eigentliches Ziel ist es im Übrigen, für eine Datenbank die Spaltennamen aller Tabellen auszulesen.



Gruß
Stephan

Re: Spalten von Datentabelle per Makro auslesen

Verfasst: Fr, 12.02.2021 16:48
von Hiker
Für MySQL z.B.

Code: Alles auswählen

select column_name from INFORMATION_SCHEMA.COLUMNS where table_name = 'Tabellenbeispiel'
Ichwäre mir nicht sicher, was als Tabelle-0 angesehen wird, das kann auch was internes sein.
Habe ich nie ausprobiert... Namen sind da sicherer.

Mfg, Jörn

Re: Spalten von Datentabelle per Makro auslesen

Verfasst: Fr, 12.02.2021 17:55
von F3K Total
Hallo Stephan,
versuch es so:

Code: Alles auswählen

Sub Main
    oController = ThisDatabasedocument.CurrentController
    if not oController.isConnected Then Controller.Connect
    oConnection = oController.ActiveConnection
    oTables = oConnection.Tables
    xray oTables
    nTables = oTables.Count
    print nTables
    for i = 0 to nTables - 1
        oTable = oTables(i)
        oColumns = oTable.Columns
        xray oColumns.ElementNames
    next i
End Sub
Gruß R

Re: Spalten von Datentabelle per Makro auslesen

Verfasst: Sa, 13.02.2021 12:05
von Stephan
Für MySQL z.B.
Danke, ich fand durch Deine Anregung jetzt auch das hier:
http://www.oooforum.de/viewtopic.php?t=62148

was ich vorher übersehen hatte.


Gruß
Stephan

Re: Spalten von Datentabelle per Makro auslesen

Verfasst: Sa, 13.02.2021 12:05
von Stephan
Hallo Stephan,
versuch es so:
Danke, das funktioniert offensichtlich fehlerfrei, auch die Tabellenanzahl für die Biblio-DB wird richtig wiedergegeben.


Gruß
Stephan