in2sql: Bekerja dengan berbagai sumber ODBC

Saya melanjutkan serangkaian cerita tentang pengembangan OpenSource In2sql , yang memvisualisasikan objek SQL untuk mengekspor data ke Excel (sebenarnya, ini adalah serangkaian artikel - dokumentasi untuk pengembangan).



Di bagian sebelumnya:





Di bagian ini, kita akan berbicara tentang cara membuat daftar objek yang ditampilkan di pohon navigasi.



gambar



Sebagai standar, kami memilih 4 jenis objek dasar



  • Tabel
  • Perwakilan
  • Fungsi
  • Prosedur.


Selain itu, setiap database memiliki objeknya sendiri untuk menyimpan entitas - misalnya:



  • MS SQL - menyimpan data di sys.schemas, yang dipisahkan berdasarkan tipe (type = 'V' - View, type = 'U' - tables)
  • Oracle - semuanya cukup sederhana di sini - ada objek user_views dan user_tables yang menyimpan deskripsi pengaturan pengguna yang sesuai
  • Vertica - v_catalog.views dan v_catalog.tables
  • PostegreSQL - pg_catalog.pg_views dan pg_catalog.pg_tables
  • MySQL - information_schema.views dan information_schema.tables
  • DB2 - semua data disimpan di SYSIBM.tables di mana table_type = 'VIEW' adalah tampilan dan table_type = 'BASE TABLE' adalah tabel.
  • ClickHouse semua objek ada di system.tables, pembagian menjadi tabel dan tampilan terjadi pada bidang engine = 'View'


Manifold ini dikelola oleh kelas in2SqlLibrary, di mana terjadi:



  • menentukan tipe koneksi ODBC, berdasarkan nama file driver (getDBType)
  • distribusi tabel (getSqlTables) dan tampilan (getSqlViews) sesuai dengan jenis yang sesuai.


Untuk mempercepat pemuatan plugin excel (addin), data ini diakses pada saat perluasan cabang artefak yang sesuai (saya akan membicarakannya di artikel lain).



All Articles