Árvore de páginas

OcorrênciaQuando uma aplicação está conectada com o banco IBM DB2 através do DBAccess e abre um ALIAS no AdvPL para retornar dados de uma Query, se a aplicação AdvPL ainda não leu todos os dados da Query, e a aplicação abrir e cancelar uma transação usando DisarmTransaction(), o banco de dados internamente fecha todos os cursores abertos, mesmo que eles tenham sido abertos antes de iniciar a transação. Com isso, o próximo DbSkip() feito no alias da Query retorna EOF() e o DBAccess retorna um erro de ODBC "Function Sequence Error". 
Melhoria

Como este comportamento diferenciado é exclusivo do banco IBM DB2, e não parametrizável, as aberturas de Query para o banco DB2 vão fazer a carga de todos os registros retornados pelo banco na memória e fechar o cursor no banco de dados, e a aplicação AdvPL ao fazer DbSkip() vai consumir os dados já carregados em memória. Com isso, mesmo que o processo inicie e faça rollback - DisarmTransaction() – de uma transação, os dados do cursor não dependem mais do banco de dados para serem retornados. 

Informações adicionais
  • Referente ao chamado: TPGW-266
  • Sem rótulos