Manipulando os resultados
Estas são as questões mais comuns dos desenvolvedores com muitos
registros. ADODB facilmente responde a isso com as funções
RECORDCOUNT() e ROWCOUNT(), que são sinônimos.
... linha a ser aplicada no exemplo anterior:
print $rs->RecordCount()." linhas retornadas "; //mostra a quantidade de linhas do resultado da pesquisa
Provavelmente a segunda questão na lista das mais comuns é o
número de campos do resultado, ADODB responde a isso com a função
FIELDCOUNT().
... linha a ser aplicada no exemplo anterior:
print $rs->RecordFieldCount()." Campos retornados "; //mostra a quantidade de campos do resultado da pesquisa
Limitando os resultados
Nós já discutimos o quanto a biblioteca torna suas aplicações
mais portáveis. Eu já tive uma experiência particular dolorosa
de migração do MySQL para o Informix uma vez,
principalmente referente a cláusula LIMIT. Por exemplo, o
MySQL permite declarações como "SELECT nome FROM funcionarios LIMIT 15", uma característica muito útil que não tem igual no
Informix, que posteriormente veio a ser implementada, de
uma maneira igualmente não padronizada, como "SELECT first 15 nome FROM funcionarios". Isto se torna mais um motivo para usar a biblioteca,
felizmente ADODB tem um caminho para manipular limites, a função
SELECTLIMIT().
$sql="SELECT sobrenome, idade FROM funcionarios";
$rs = $db->SelectLimit($sql,10,100); //seleciona 10 linhas iniciando na linha 100
if (!$rs) {
print $rs->ErrorMsg(); //mostra mensagem de erro
} // fim do IF
else{
while (!$rs->EOF) {
print $rs->fields[0]." ".$rs->fields[1]."<br>";
//fields[0] é sobrenome e fields[1] é a idade
$rs->MoveNext(); //Mover para o próximo registro
} //fim do WHILE
} // fim do ELSE
A função SelectLimit() pega a declaração SQL como primeiro
parâmetro, em seguida vem o número de linhas a exibir e por
último o OFFSET (a partir de onde exibir).
Note que isso inverte a ordem da cláusula LIMIT do MySQL, o que
faz dela muito útil para mostrar resultados em WEB PAGES, com
botões de avanço e retrocesso para navegar entre os registros.
Freqüentemente tenho visto códigos que retornam todos os
resultados usando o PHP para filtrar. Um poderoso esforço
desperdiçado, você pode ainda usar a função CACHE_SELECTLIMIT()
para guardar esse tipo de resultado.