Alguns programadores iniciantes ao inserir um Query no Data Module da Aplicação simplesmente altera o Campo SQL para executar a operação desejada, porém a forma mais eficaz e executá-la no corpo do programa, assim como as stored procedures
Execução de Query no Delphi
qry.Close;
qry.SQL.Clear;
qry.SQL.Add(passe aqui o sql da lista);
qry.ExecSQL;
Execução de Stored Procedures no Delphi
CREATE PROCEDURE ATUALIZA_PRECO_VND_PRD (
id_produto integer,
margem_lucro decimal(15,4))
as
begin
update tabprodutos
set preco_venda = preco_custo + (preco_custo * :margem_lucro)/100
where id_produto = :id_produto;
suspend;
end^
SET TERM ; ^
Execução de Stored Procedures no Delphi
CREATE PROCEDURE ATUALIZA_PRECO_VND_PRD (
id_produto integer,
margem_lucro decimal(15,4))
as
begin
update tabprodutos
set preco_venda = preco_custo + (preco_custo * :margem_lucro)/100
where id_produto = :id_produto;
suspend;
end^
SET TERM ; ^
with qrylocal do
begin
close;
sql.clear;
sql.add(' EXECUTE PROCEDURE ATUALIZA_PRECO_VND_PRD (:id_produto,:margem_lucro decimal)');
Params[0].asinteger := inttostr(dbe_produto.text);
Params[1].ascurrency := inttofloat(dbe_margemLucro.text);
try
execsql;
dm.connection.commit;
except
dm.connection.rollback;
end;
end;
begin
close;
sql.clear;
sql.add(' EXECUTE PROCEDURE ATUALIZA_PRECO_VND_PRD (:id_produto,:margem_lucro decimal)');
Params[0].asinteger := inttostr(dbe_produto.text);
Params[1].ascurrency := inttofloat(dbe_margemLucro.text);
try
execsql;
dm.connection.commit;
except
dm.connection.rollback;
end;
end;
lQuery := TQuery.Create(nil);
try lQuery.SQL.Clear;
lQuery.SQL.Add('exec fn_ResolucaoPessoa: TipoPesquisa: NomePessoa: CPF: RG: DataNascimento: NomeMae');
lQuery.Parameters.ParamByName(
lQuery.Parameters.ParamByName(
lQuery.Parameters.ParamByName(
lQuery.Parameters.ParamByName(
lQuery.Parameters.ParamByName(
lQuery.Parameters.ParamByName(
lQuery.ExecSQL;finally
lQuery.Free;end;
Nenhum comentário:
Postar um comentário