Recordset com ADO em Delphi
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:
Sendo que pelo que parece posso simplesmente usar
Em questao de eficiencia, o segundo seria melhor por ser mais curto?
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;
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
Curtidas 0
Respostas
Raimundo Pereira
27/07/2016
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
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
GOSTEI 0