Árvore de páginas

Carregando...

  1. Iniciar o ODBC Data Source Administrator,
    1. Execute %WinDir%\System32\odbcad32.exe.
    2. Execute %WinDir%\SysWoW64\odbcad32.exe - para TOTVS | DBAccess 32 bits em sistemas operacionais 64 bits.
  2. Crie uma nova fonte de dados.
    (informação) Utilize o driver PostgreSQL ANSI.
  3. Altere a nova fonte de dados de acordo com suas informações de acesso ao banco e:
    1. Marque a opção Recognize Unique Indexes.
    2. Desmarque a opção Use Declare/Fetch.
    3. No grupo Unknown Sizes, selecione a opção Longest.
    4. No grupo Data Type Options, marque a opção Text as LongVarchar.
    5. No grupo Data Type Options, marque a opção Bools as Char.
    6. No grupo Miscellaneous, em Max LongVarchar, informe 2000.
    7. Desmarque a opção Read Only.
    8. Desmarque a opção Row Versioning.
    9. Desmarque a opção Show System Tables.
    10. Marque a opção LFConversion.
    11. No grupo OID Options, desmarque a opção Show Column.
    12. No grupo OID Options, demarque a opção Fake Index.
    13. Marque a opção Server side prepare.
    14. Marque a opção bytea as LO
  4. Salve a fonte de dados.

Configuração Use Declare / Fetch

A ODBC do Postgres por default sempre recebe o result-set inteiro de qualquer query aberta. Quando usamos essa configuração habilitada (UseDeclareFetch=1), a ODBC encapsula a query declarando um cursor no banco de dados, e trazendo blocos de 100 registros por vez. Esse encapsulamento pode interferir em queries que façam por exemplo WITH ( CTE ) AS (SELECT) INSERT INTO (X) SELECT FROM CTE. 

Atualmente, o único caso onde é recomendável usar essa configuração com o valor 1 (habilitada), é quando vamos utrilizar o DBTOOLS para migrar os dados de um banco de origem POSTGRES para outro Database. A leitura da tabela inteira pelo DBTools para fazer a cópia pode elevar consideravelmente a memória do DBACCess neste processo, dependendo do tamanho da tabela envolvida.