in2sql: Arbeiten mit einer Vielzahl von ODBC-Quellen

Ich setze eine Reihe von Geschichten über die OpenSource- Entwicklung von In2sql fort , in der SQL-Objekte für den Export von Daten nach Excel visualisiert werden (tatsächlich handelt es sich um eine Reihe von Artikeln - Dokumentation für die Entwicklung).



In den vorherigen Teilen:





In diesem Teil wird erläutert, wie Sie eine Liste der Objekte erstellen, die im Navigationsbaum angezeigt werden.



Bild



Standardmäßig wählen wir 4 Arten von Basisobjekten aus



  • Tabellen
  • Darstellung
  • Funktionen
  • Verfahren.


Außerdem verfügt jede Datenbank über eigene Objekte zum Speichern von Entitäten - zum Beispiel:



  • MS SQL - speichert Daten in sys.schemas, wo sie nach Typ getrennt sind (Typ = 'V' - Ansicht, Typ = 'U' - Tabellen)
  • Oracle - hier ist alles ganz einfach - es gibt user_views- und user_tables-Objekte, in denen eine Beschreibung der entsprechenden Benutzereinstellungen gespeichert ist
  • Vertica - v_catalog.views und v_catalog.tables
  • PostegreSQL - pg_catalog.pg_views und pg_catalog.pg_tables
  • MySQL - information_schema.views und information_schema.tables
  • DB2 - Alle Daten werden in SYSIBM.tables gespeichert, wobei table_type = 'VIEW' Ansichten und table_type = 'BASE TABLE' Tabellen sind.
  • ClickHouse Alle Objekte befinden sich in system.tables. Die Unterteilung in Tabellen und Ansichten erfolgt im Feld engine = 'View'


Diese Mannigfaltigkeit wird von der in2SqlLibrary-Klasse verwaltet, in der Folgendes geschieht:



  • Bestimmen des Typs der ODBC-Verbindung basierend auf dem Namen der Treiberdatei (getDBType)
  • Verteilung von Tabellen (getSqlTables) und Ansichten (getSqlViews) nach den entsprechenden Typen.


Um das Laden des Excel-Plugins (Add-Ins) zu beschleunigen, wird auf diese Daten zum Zeitpunkt der Erweiterung des Zweigs des entsprechenden Artefakts zugegriffen (ich werde in einem anderen Artikel darauf eingehen).



All Articles