O método GetADORecordSet da Consulta retorna um objeto Recordset do tipo ADO (ActiveX Data Object), resultante da execução da consulta configurada.
O objeto ADO RecordSet é usado para acessar os registros de uma tabela do banco de dados. Possui as seguintes propriedades e métodos:
Propriedades
As propriedades são importantes para verificar a existência de valores na tabela. Podem ser utilizadas como script de segurança. Como exemplo, será utilizada a seguinte tabela:
Figura 1: Tabela utilizada
-
BOF: Retorna verdadeiro se a posição do ponteiro é anterior ao primeiro registro. No exemplo a seguir, o script verifica se o ponteiro está acima do primeiro registro. Se esta condição for verdadeira, retorna uma mensagem informando que não existem registros acima.
Figura 2: Script de proteção utilizando o método BOF
-
EOF: Retorna verdadeiro se a posição do ponteiro é posterior ao último registro. No exemplo a seguir, o script verifica se o ponteiro está abaixo do último registro. Se esta condição for verdadeira, retorna uma mensagem informando que não existem registros abaixo.
Figura 3: Script de proteção utilizando o método EOF
-
RecordCount: Retorna o número de registros na tabela. Exemplo:
Figura 4: Script utilizando o método RecordCount
Métodos
Os métodos são utilizados para que se possa fazer amostragens nos registros, podendo-se obter os valores de todos os registros de maneira precisa.
- MoveFirst: Move o ponteiro para o primeiro registro. Exemplo:
Figura 5: Script demonstrando o uso do método MoveFirst
-
MoveLast: Move o ponteiro para o último registro. Exemplo:
Figura 6: Script demonstrando o uso do método MoveLast
-
MoveNext: Move o ponteiro para o próximo registro. Exemplo:
Figura 7: Script demonstrando o uso do método MoveNext
-
MovePrevious: Move o ponteiro para o registro anterior. Exemplo:
Figura 8: Script demonstrando o uso do método MovePrevious
Exercício
- Crie um botão que conta o número de registros existentes no Histórico e retorna uma mensagem com este valor.
- Crie um botão que informa o valor do primeiro registro.
- Crie um botão que informa o valor do último registro.
O exemplo do Metodo NEXT, funciona apenas com referência do ponteiro na primeira posição.
Qual é o procedimento para que este Método funcione sequencialmente?
Olá @Julio,
Conforme artigo, https://kb.elipse.com.br/nocoes-de-vbscript-no-software-elipse-e3-licao-5-controle-de-fluxo/, o método Next funciona um determinado número de vezes, podendo ir de um valor fixo, até o final dos registros da tabela, por exemplo:
set RS = Screen.Item(“Consulta1”).GetADORecordset()
RS.MoveFirst
for i=1 to RS.RecordCount
Campo1 = RS.Fields(“Campo1”).Value
Campo2 = RS.Fields(“Campo2”).Value
campo3 = RS.Fields(“Campo3”).Value
MsgBox Campo1 &vbTab& Campo2 &vbTab& Campo3
RS.MoveNext
next
Atenciosamente,
Boa noite, e para voltar sequencialmente?
Reginaldo,
Como você precisa navegar entre os registros e o método GetADORecordset não possui nenhuma propriedade que especifique o valor do registro a ser acessado, sugiro que via E3 seja realizada a leitura de todos os registros, e então escritos em um arquivo TXT. Estes dois artigos possuem maiores orientações sobre como realizar a manipulação:
https://kb.elipse.com.br/kb12658-como-lerescrever-em-arquivos-texto-txt-pelo-e3/
https://kb.elipse.com.br/kb64100-retornando-uma-linha-especifica-de-arquivos-texto-txt-pelo-e3/
Desta forma podemos manipular a linha conforme a posição armazenada.
Na aplicação exemplo (download aqui) há um botão que cria o TXT e lê o primeiro registro.
Abaixo há dois botões para navegar entre os registros.
Como faz para escrever os valores retornados em Tags internas ao invés do MsgBox?