Mudanças entre as edições de "TPHQuery"

(Propriedades)
(Propriedades)
 
(6 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 22: Linha 22:
 
|Objeto
 
|Objeto
 
|Retorna a quantidade total de registros obtidos pela consulta
 
|Retorna a quantidade total de registros obtidos pela consulta
 +
|-
 +
|-
 +
|RowsAffected
 +
|Inteiro
 +
|Quantidade de registros alterados após a execução do comando
 
|-
 
|-
 
|Vazia
 
|Vazia
Linha 39: Linha 44:
 
*'''First:''' Move o cursor para o primeiro registro.
 
*'''First:''' Move o cursor para o primeiro registro.
 
*'''Free:''' Libera a memória ocupada pelo objeto.
 
*'''Free:''' Libera a memória ocupada pelo objeto.
*'''Insert: ''' Insere um novo registro no dataset(modo edicação).
+
*'''Insert: ''' Nativos da Query, não fazem referência direta às classes de negócio. Por isso, não é recomendado utilizá-lo, exceto quando estamos trabalhando diretamente com a Query.
 +
*'''Inserir:''' Solicita um novo ID e chama o NovoRegistro caso a Query esteja vazia. Se já houver registros, o novo registro é adicionado, mantendo os anteriores. Isso permite navegar entre os registros criados durante o processo, sem precisar buscá-los novamente no banco de dados.
 
*'''Last:''' Move o cursor para o último registro.
 
*'''Last:''' Move o cursor para o último registro.
 
*'''Next:''' Move o cursor para o próximo registro do conjunto de resultados.
 
*'''Next:''' Move o cursor para o próximo registro do conjunto de resultados.
*'''NovoRegistro:''' Cria um novo registro.
+
*'''NovoRegistro:''' Cria um novo registro na Query executando um comando SELECT com o novo ID. Com isso, a Query passa a conter apenas esse novo registro, ou seja, uma única linha.
 
*'''Open:''' Executa a consulta SQL (geralmente SELECT) e abre o conjunto de registros para leitura.
 
*'''Open:''' Executa a consulta SQL (geralmente SELECT) e abre o conjunto de registros para leitura.
 
*'''ParamByName(String):''' Atribui o parâmetro a query.
 
*'''ParamByName(String):''' Atribui o parâmetro a query.
*'''Post:''' Salva as alteraões feitas no registro atual.
+
*'''Post:''' Nativos da Query, não fazem referência direta às classes de negócio. Por isso, não é recomendado utilizá-lo, exceto quando estamos trabalhando diretamente com a Query.
 
*'''Prior:''' Move o cursor para o registro anterior.
 
*'''Prior:''' Move o cursor para o registro anterior.
*'''Salvar:''' Salva as alterações pendentes.
+
*'''Salvar:''' Salvar o registro respeitando as regras definidas na classe de negócio.
  
 
===Exemplo===
 
===Exemplo===
Linha 53: Linha 59:
 
   procedure EnviarEmail;
 
   procedure EnviarEmail;
 
   var
 
   var
     Consulta:TPHQuery;                                           
+
     Q:TPHQuery;                                           
 
   begin
 
   begin
     Consulta:= NewPHQuery;
+
     Q:= NewPHQuery;
 
     try
 
     try
 
       Q.Add('SELECT NOME '+
 
       Q.Add('SELECT NOME '+
Linha 64: Linha 70:
 
       Informacao(Q.FieldByName('NOME').AsString;               
 
       Informacao(Q.FieldByName('NOME').AsString;               
 
     finally
 
     finally
       Consulta.Free;                                         
+
       Q.Free;                                         
 
     end;             
 
     end;             
 
   end;
 
   end;

Edição atual tal como às 15h25min de 17 de agosto de 2026

O objeto TPHQuery permite executar comandos SQL (consulta, inserção, atualização ou exclusão) e manipular os dados retornados. Ele funciona como um cursor que percorre os registros do banco de dados.

Propriedades

Nome Tipo Descrição
Bof Booleano Indica se o cursor está posicionado antes do primeiro registro
Eof Booleano Indica se o cursor atingiu o fim do conjunto de registros
RecNo Inteiro Indica a posição atual do registro no conjunto de resultados
RecordCount Objeto Retorna a quantidade total de registros obtidos pela consulta
RowsAffected Inteiro Quantidade de registros alterados após a execução do comando
Vazia Booleano Indica se a consulta não retornou nenhum registro

Procedimentos

  • Add: Adiciona linha de comando SQL ao objeto.
  • ClassName: Retorna o nome da classe do objeto.
  • Clear: Limpa todo o SQL adicionado ao objeto.
  • Close: Fecha o conjunto de resultados da consulta.
  • Edit: Habilita edição do registro atual.
  • ExecSQL: Executa um comando SQL que não retorna registros (INSERT, UPDATE, DELETE).
  • FieldByName('Campo'): Retorna o valor do campo especificado da linha atual.
  • First: Move o cursor para o primeiro registro.
  • Free: Libera a memória ocupada pelo objeto.
  • Insert: Nativos da Query, não fazem referência direta às classes de negócio. Por isso, não é recomendado utilizá-lo, exceto quando estamos trabalhando diretamente com a Query.
  • Inserir: Solicita um novo ID e chama o NovoRegistro caso a Query esteja vazia. Se já houver registros, o novo registro é adicionado, mantendo os anteriores. Isso permite navegar entre os registros criados durante o processo, sem precisar buscá-los novamente no banco de dados.
  • Last: Move o cursor para o último registro.
  • Next: Move o cursor para o próximo registro do conjunto de resultados.
  • NovoRegistro: Cria um novo registro na Query executando um comando SELECT com o novo ID. Com isso, a Query passa a conter apenas esse novo registro, ou seja, uma única linha.
  • Open: Executa a consulta SQL (geralmente SELECT) e abre o conjunto de registros para leitura.
  • ParamByName(String): Atribui o parâmetro a query.
  • Post: Nativos da Query, não fazem referência direta às classes de negócio. Por isso, não é recomendado utilizá-lo, exceto quando estamos trabalhando diretamente com a Query.
  • Prior: Move o cursor para o registro anterior.
  • Salvar: Salvar o registro respeitando as regras definidas na classe de negócio.

Exemplo

 procedure EnviarEmail;
 var
   Q:TPHQuery;                                           
 begin
   Q:= NewPHQuery;
   try
     Q.Add('SELECT NOME '+
           'FROM MUNICIPIOS '+
           'WHERE ID = 1');
     Q.Open;
                         
     Informacao(Q.FieldByName('NOME').AsString;               
   finally
     Q.Free;                                        
   end;            
 end;