Manual do PHP
Anterior |  | Próxima

# sybase_unbuffered_query

(PHP 4 >= 4.3.0, PHP 5)

sybase_unbuffered_query -- Envia uma consulta Sybase e não bloqueia

## Descrição

resource sybase_unbuffered_query ( string query, resource link_identifier [, bool store_result] )

Retorna um identificador de resultado Sybase positivo em caso de sucesso, ou `FALSE` em caso de erro.

> Nota: Esta função somente está disponível quando utilizando a biblioteca de interface CT do Sybase, mas não pela biblioteca DB.

sybase_unbuffered_query() envia uma consulta para o banco de dados ativo no servidor que esta associado ao identificador de conexão especificado. Se o identificador de conexão não for especificado, a última conexão aberta é assumida. Se não houver conexão aberta, a função tenta estabelecer uma conexão como se sybase_connect() fosse chamada, e a utiliza.

Diferentemente de sybase_query(), sybase_unbuffered_query() lê apenas a primeira linha do conjunto de resultados . sybase_fetch_array() e as funções similares lêem mais linhas caso necessário. sybase_data_seek() lê até a linha desejada. este funcionamento deve produzir melhor velocidade para grandes conjuntos de resultados.

sybase_num_rows() irá retornar apenas o número coreto de linhas se todo o conjunto de resultados já foi lido. Para o Sybase, o número de linhas não é conhecido e portanto não é computado pela implementação do cliente.

> Nota: Se você não ler todo o conjunto de resultados antes de executar a próxima consulta, o PHP irá emitir um aviso e cancelar todos os resultados pendentes. Para eliminar isto, use sybase_free_result() o qual cancela os reaultados pendentes de uma consulta sem buffer.

O parâmetro opcional `store_result` pode ser `FALSE` para indicar que os conjuntos de resultados não devem ser obtidos para a memória, assim minimizando a utilização de memoria, o que é particularmente interessante para conjuntos muito grandes de resultados.

Exemplo 1. Exemplo sybase_unbuffered_query()
`<?php $dbh = sybase_connect('SYBASE', '', ''); $q = sybase_unbuffered_query('select firstname, lastname from huge_table', $dbh, false); sybase_data_seek($q, 10000); $i = 0; while ($row = sybase_fetch_row($q)) { echo $row[0], ' ', $row[1], '<br />'; if ($i++ > 40000) { break; } } sybase_free_result($q); sybase_close($dbh); ?>`

Veja também sybase_query().

Anterior | Principal | Próxima
sybase_set_message_handler | Acima | TCP Wrappers Functions