Página 1 de 1

Recursos extras ao usar recordset ADO

Enviado: 22 Mar 2024 12:18
por JoséQuintas
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....

Código: Selecionar todos

oRs := cnSQL:Execute( "SELECT NOME, ENDERECO, CIDADE, UF FROM CLIENTES" )
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:

Código: Selecionar todos

oExcel := win_OleCreateObject( "excel.application" )
Isso cria um vínculo entre Excel e o aplicativo. O Excel não está dentro do aplicativo.

Código: Selecionar todos

oADO := win_OleCreateObject( "ADODB.Connection" )
oRs  := win_OleCreateObject( "ADODB.Recordset" )
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.