Você está aqui: Delphi ::: dbExpress ::: TSQLDataSet |
Como executar comandos SQL usando o método ExecSQL() da classe TSQLDataSet do DelphiQuantidade de visualizações: 29766 vezes |
|
O método ExecSQL() da classe TSQLDataSet é usado quando queremos executar comandos SQL que não retornam um conjunto de dados. Este comando pode ser INSERT, UPDATE, DELETE, CREATE TABLE, etc, exceto SELECT. Veja a assinatura deste método: function ExecSQL(ExecDirect: Boolean = False): Integer; override; ExecDirect é usado para indicar que a query não precisa ser preparada antes de ser executada. Este parâmetro pode ser definido como True se o comando não incluir nenhum parâmetro. Se o valor for False, a query será preparada antes de ser executada. Vamos ver um exemplo? Veja um trecho de código no qual usamos o método ExecSQL() para disparar um comando SQL UPDATE. Note que aqui estamos usando um comando SQL preparado (pré-compilado): ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
procedure TForm3.Button1Click(Sender: TObject);
var
nome: string;
id: integer;
begin
nome := 'OSMAR J. SILVA';
id := 2; // id do registro a ser atualizado
// vamos definir o comando SQL a ser executado
SQLDataSet1.CommandText := 'UPDATE contatos SET nome = :nome WHERE id = :id';
SQLDataSet1.Params[0].Name := 'nome';
SQLDataSet1.Params[0].Value := nome;
SQLDataSet1.Params[1].Name := 'id';
SQLDataSet1.Params[1].Value := id;
// como o comando é preparado, vamos definir o valor
// False para o parâmetro ExecDirect
SQLDataSet1.ExecSQL(False);
// vamos mostrar uma mensagem indicando o sucesso da operação
ShowMessage('Comando SQL executado com sucesso.');
end;
É importante observar que o método ExecSQL() retorna o número de linhas afetadas pelo comando. O valor retornado se torna o valor da propriedade RowsAffected. Veja como modificar o código anterior para retornar a quantidade de linhas afetadas: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
procedure TForm3.Button1Click(Sender: TObject);
var
nome: string;
id: integer;
linhasAfetadas: integer;
begin
nome := 'OSMAR J. SILVA';
id := 2; // id do registro a ser atualizado
// vamos definir o comando SQL a ser executado
SQLDataSet1.CommandText := 'UPDATE contatos SET nome = :nome WHERE id = :id';
SQLDataSet1.Params[0].Name := 'nome';
SQLDataSet1.Params[0].Value := nome;
SQLDataSet1.Params[1].Name := 'id';
SQLDataSet1.Params[1].Value := id;
// como o comando é preparado, vamos definir o valor
// False para o parâmetro ExecDirect
linhasAfetadas := SQLDataSet1.ExecSQL(False);
// vamos mostrar uma mensagem indicando o sucesso da operação
ShowMessage('Comando SQL executado com sucesso. ' +
IntToStr(linhasAfetadas) + ' linhas afetadas.');
end;
Lembre-se que não podemos usar ExecSQL() com comandos que retornam dados. Estes comandos incluem todos os comandos do tipo ctTable, queries SELECT e stored procedures que retornam um cursor. Quando o comando retornar dados, devemos usar o método Open ou definir a propriedade Active do SQLDataSet como True. |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







