Recursos extras ao usar recordset ADO
Enviado: 22 Mar 2024 12:18
Tenho usado alguns recursos extras ao usar recordset ADO, nada demais.
O recordset ADO é uma espécie de tabela, digamos que é o DBF do ADO....
Não precisa ser convertido pra array, pode ser usado diretamente no browse, SE A LIB PERMITIR.
Quer usar posição atual e quantidade pra barra de scroll? só usar :AbsolutePosition e :RecordCount
Quer aplicar filtro ? oRs:Filter = "NOME LIKE '%JOAO%'"
:AbsolutePosition é sempre relativo ao resultado, não à posição sem filtro.
Quer ordenar? oRs:Sort( "NOME" )
Quer salvar ? oRs:Save( "c:\temp\test.rs" )
(Acho que precisa remover o vínculo ao banco de dados antes)
Quer carregar ?
oRs:Load( "c:\temp\test.rs" )
Talvez um gerador de relatórios tenha acesso ao recordset salvo.
Quer atualizar após uma exclusão ?
oRs:Requery()
Quer filtrar enquanto digita ?
oRs:Filter = "NOME LIKE '%" + cVarDigitada + "%'"
Sei lá... me parece mais simples do que ficar recriando arrays no aplicativo....
Vamos pensar:
Isso cria um vínculo entre Excel e o aplicativo. O Excel não está dentro do aplicativo.
Se o Excel fica fora do aplicativo, o ADO está dentro ou fora do aplicativo ?
Não sei dizer, e não faz diferença, funcionar é o que importa.
Quem faz uso pesado pode se interessar por esse teste, se o resultado fica dentro ou fora do aplicativo.
O recordset ADO é uma espécie de tabela, digamos que é o DBF do ADO....
Código: Selecionar todos
oRs := cnSQL:Execute( "SELECT NOME, ENDERECO, CIDADE, UF FROM CLIENTES" )
Quer usar posição atual e quantidade pra barra de scroll? só usar :AbsolutePosition e :RecordCount
Quer aplicar filtro ? oRs:Filter = "NOME LIKE '%JOAO%'"
:AbsolutePosition é sempre relativo ao resultado, não à posição sem filtro.
Quer ordenar? oRs:Sort( "NOME" )
Quer salvar ? oRs:Save( "c:\temp\test.rs" )
(Acho que precisa remover o vínculo ao banco de dados antes)
Quer carregar ?
oRs:Load( "c:\temp\test.rs" )
Talvez um gerador de relatórios tenha acesso ao recordset salvo.
Quer atualizar após uma exclusão ?
oRs:Requery()
Quer filtrar enquanto digita ?
oRs:Filter = "NOME LIKE '%" + cVarDigitada + "%'"
Sei lá... me parece mais simples do que ficar recriando arrays no aplicativo....
Vamos pensar:
Código: Selecionar todos
oExcel := win_OleCreateObject( "excel.application" )
Código: Selecionar todos
oADO := win_OleCreateObject( "ADODB.Connection" )
oRs := win_OleCreateObject( "ADODB.Recordset" )
Não sei dizer, e não faz diferença, funcionar é o que importa.
Quem faz uso pesado pode se interessar por esse teste, se o resultado fica dentro ou fora do aplicativo.