Você está aqui: Delphi ::: dbExpress ::: TSQLDataSet |
Como executar comandos SQL usando o método ExecSQL() da classe TSQLDataSet do DelphiQuantidade de visualizações: 29514 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): 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'; É 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: 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; 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 |