in2sql: Trabalhando com uma variedade de fontes ODBC

Continuo uma série de histórias sobre o desenvolvimento OpenSource do In2sql , que visualiza objetos SQL para exportar dados para o Excel (na verdade, esta é uma série de artigos - documentação para desenvolvimento).



Nas partes anteriores:





Nesta parte, falaremos sobre como criar uma lista de objetos que são exibidos na árvore de navegação.



imagem



Como padrão, selecionamos 4 tipos de objetos básicos



  • Mesas
  • Representação
  • Funções
  • Procedimentos.


Além disso, cada banco de dados tem seus próprios objetos para armazenar entidades - por exemplo:



  • MS SQL - armazena dados em sys.schemas, onde são separados por tipo (tipo = 'V' - Visualização, tipo = 'U' - tabelas)
  • Oracle - tudo é muito simples aqui - existem objetos user_views e user_tables que armazenam uma descrição das configurações de usuário correspondentes
  • Vertica - v_catalog.views e v_catalog.tables
  • PostegreSQL - pg_catalog.pg_views e pg_catalog.pg_tables
  • MySQL - information_schema.views e information_schema.tables
  • DB2 - todos os dados são armazenados em SYSIBM.tables, em que table_type = 'VIEW' são visualizações e table_type = 'BASE TABLE' são tabelas.
  • Todos os objetos do ClickHouse estão em system.tables, a divisão em tabelas e visualizações ocorre no campo engine = 'View'


Este manifold é gerenciado pela classe in2SqlLibrary, na qual acontece:



  • determinar o tipo de conexão ODBC, com base no nome do arquivo do driver (getDBType)
  • distribuição de tabelas (getSqlTables) e visualizações (getSqlViews) de acordo com os tipos correspondentes.


Para agilizar o carregamento do plugin do excel (addin), esses dados são acessados ​​no momento da expansão do branch do artefato correspondente (falarei sobre isso em outro artigo).



All Articles