Navegando em conjuntos de dados¶
Cada conjunto de dados ativo tem um cursor, ou ponteiro, para a linha atual no conjunto de dados.
A linha atual em um conjunto de dados é aquela cujos valores podem ser manipulados pelos métodos
edit, insert e delete, e a que seus valores de campo são exibidos nos controles de dados
de um formulário.
Você pode alterar a linha atual movendo o cursor para apontar para uma linha diferente. A tabela a seguir lista os métodos que você pode usar no código do aplicativo para mover para diferentes registros:
Método do cliente |
Método do servidor |
Descrição |
|---|---|---|
Move o cursor para a primeira linha em um conjunto de dados de item. |
||
Move o cursor para a última linha em um conjunto de dados de item. |
||
Move o cursor para a próxima linha em um conjunto de dados de item. |
||
Move o cursor para a linha anterior em um conjunto de dados de item. |
Além desses métodos, a tabela a seguir descreve dois métodos que fornecem informações úteis ao iterar pelos registros em um conjunto de dados:
Método do cliente |
Método do servidor |
Descrição |
|---|---|---|
Se o método retornar verdadeiro, o cursor está na primeira linha do conjunto de dados; caso contrário, o cursor não é conhecido como estando na primeira linha do conjunto de dados. |
||
Se o método retornar verdadeiro, o cursor está na última linha do conjunto de dados; caso contrário, o cursor não é conhecido como estando na última linha do conjunto de dados. |
Cada vez que o cursor se move para outro registro no conjunto de dados, os seguintes eventos são acionados:
Evento do cliente |
Evento do servidor |
Descrição |
|---|---|---|
|
Ocorre antes de um aplicativo rolar de um registro para outro. |
|
|
Ocorre depois que um aplicativo rola de um registro para outro. |
Usando esses métodos, podemos navegar em um conjunto de dados. Por exemplo,
no cliente:
function get_customers(customers) {
customers.open();
while (!customers.eof()) {
console.log(customers.firstname.value, customers.lastname.value);
customers.next();
}
}
no servidor:
def get_customers(customers):
customers.open()
while not customers.eof():
print customers.firstname.value, customers.lastname.value
customers.next()
Formas mais rápidas de navegar no conjunto de dados¶
Existe o método each no cliente que pode ser usado para navegar em um conjunto de dados:
Por exemplo:
function get_customers(customers) {
customers.open();
customers.each(function(c) {
if (c.rec_no === 10) {
return false;
}
console.log(c.rec_no, c.firstname.value, c.lastname.value);
});
}
no servidor:
def get_customers(customers):
customers.open()
for c in customers:
if c.rec_no == 10:
break
print c.firstname.value, c.lastname.value
Ambas as funções irão exibir os nomes dos clientes para os primeiros 10 registros no conjunto de dados.
Em ambos os casos, c e customers são ponteiros para o mesmo objeto.