|
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. |