Fórum Recordset com ADO em Delphi #559611

27/07/2016

0

Eae galera, estou iniciando uma aplicação conectando com o mySQL pelo ADO, sou iniciante, e me deparei com a propriedade Recordset, e tenho algumas duvidas em relação a seu uso e eficiencia, por exemplo:

Qual é melhor em questao de desempenho, usar ADOQuery1.Next ou ADOQuery1.Recordset.MoveNext?

Para fazer updates, achei as seguintes sintaxes:

ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add ('UPDATE produto SET');
ADOQuery.SQL.Add ('nome = :pNome');
ADOQuery.SQL.Add ('WHERE codigo = :pCodigo');
ADOQuery.Parameters.ParamByName('pCodigoProduto').Value := edt_codigo.Text;
ADOQuery.Parameters.ParamByName('pNome').Value := edt_nome.Text;
try
ADOQuery.ExecSQ
Showmessage('Alterado com sucesso');
except
Showmessage('Erro.');
end;


Sendo que pelo que parece posso simplesmente usar

ADOQuery1.Recordset.Update('Nome',edt_nome.text);


Em questao de eficiencia, o segundo seria melhor por ser mais curto?
Vitor Ferreira

Vitor Ferreira

Responder

Posts

27/07/2016

Raimundo Pereira

Exemplo1
Tabela Produtos

Campos
Cod_produto
Descricao
Notafiscal
Serie
Pago

Então temos os seguintes registros:

Cod_produto Descricao Notafiscal Serie Pago
1 TECLADO 2526 1
2 MOUSE 2526 1
3 CAIXA DE SOM 2526 2
4 HD 2526 3
5 FONTE 2526 5

Agora vamos alterar o campo "Pago" da NFe 2526 Serie 3 para Sim

Exemplo comando 1 :
ADOQuery1.Recordset.Update(''Pago'',Sim);

Exemplo comando 2 :

ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add (''UPDATE produtos SET'');
ADOQuery.SQL.Add (''Pago = :Sim'');
ADOQuery.SQL.Add (''WHERE Notafiscal = :2526'');// Passado a primeira condição
ADOQuery.SQL.Add ('' and Serie=3'');// Passado a Segunda condição
try
ADOQuery.ExecSQ
Showmessage(''Alterado com sucesso'');
except
Showmessage(''Erro.'');
end;

Então por conta de ter a opção de passar dois ou mais paramentos, utilizo sempre o Comando2
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar