Skip to main content

Module statement

Module statement 

Source
Expand description

Instruções preparadas (statements): alocar, preparar, executar e buscar linhas.

Ciclo de vida (espelha isc_dsql_* / fbclient):

  1. Connection::prepare envia op_allocate_statement, lê o handle do servidor, depois op_prepare_statement e faz o parsing da resposta de info de descrição (describe-info) em metadados de parâmetros de entrada e colunas de saída.
  2. Statement::execute envia op_execute (com uma mensagem de entrada quando a instrução tem parâmetros). Para um SELECT isto abre um cursor.
  3. Statement::fetch puxa uma linha por vez via op_fetch / op_fetch_response até o cursor se esgotar.
  4. Statement::close / Statement::drop_statement liberam o estado no servidor.

Assim como Transaction, um Statement é um handle cujos métodos de I/O emprestam a Connection dona, então apenas um empréstimo mutável fica ativo por vez.

Structs§

RowStream
Stream síncrono sobre as linhas de um cursor aberto, criado por Statement::rows. Entrega uma linha por vez via Self::try_next, buscando lotes do servidor sob demanda — não materializa o resultado inteiro.
RowsAffected
Número de linhas que a última execução afetou, separado por tipo de operação. Retornado por Statement::rows_affected.
Statement
Uma instrução preparada vinculada ao handle de banco de dados de uma Connection.