Turma,
Estou com um problema daqueles para discutirmos aqui!
Hoje, temos várias aplicações desenvolvidas em VB6 x SQL que utiliza de um conceito que vou tentar colocar aqui para discutirmos melhor.
O padrão adotado foi que todas as vezes que necessitar acessar o banco de dados, será aberto uma conexão com o mesmo e os comandos serão executados "TODOS" via stored procedure, e no caso de SELECT será devolvido um recordset.
O maior problema que estou enfrentando é a quantidade de dados retornado para o recordset, pois dependendo do filtro que é passado, pode retornar até 250.000 itens, o que "trava" o processo até que o SQL possa concluir sua tarefa
para devolver o recordset montado.
Meu pensamento é fazer com a aplicação fique concetada o tempo todo no banco de dados, para não provocar o conecta/desconecta a todo momento. Isso é fácil de alterar!
A maior dificuldade está em devolver o recordset, por demanda (não sei se é possível), ou seja, ao invés de esperar o SQL Server terminar o processo, se existe alguma forma dele devolver os dados. Até mesmo por
que se a tela for fechada, esse processo é cancelado.
Em Resumo:
1) é possível devolver um recordset, mesmo que ele ainda não tenha terminado a pesquisa completa no banco de dados?
2) quando o recordset for devolvido, é possível cancelar a operação?
3) exisite algum custo para o o SQL ficar com todas as conexões aberta ao mesmo tempo?
Obrigado a todos !
Pablicio