Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Video: Curso Online-Automação Comercial em Delphi com OOP, BPLS e FIREBIRD(Avançado)-Parte III-Continuando com a criação das Stored Procedures da aplicação
Veremos também nesta vídeo-aula, a utilização de exceptions para realizar o bloqueio de determinadas ações aos usuários.
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?
Título: Curso Online-Automação Comercial em Delphi com OOP, BPLS e FIREBIRD(Avançado)-Parte III-Continuando com a criação das Stored Procedures da aplicação
Tempo: 21:00 min
Mini Resumo: Essa é a terceira vídeo-aula do curso de automação comercial. Nesse vídeo iremos dar continuidade a criação de stored procedures. Dessa vez iremos criar um procedimento genérico para o tratamento da segurança dos métodos de inclusão, alteração e deleção. Usaremos um recurso interessante que é a utilização de exceptions para realizar o bloqueio de determinadas ações. Veja como é interessante adotar procedimentos para manipulação de dados e garantir não só a padronização das chamadas como também a organização e centralização das regras de negócio. Além do controle de acesso daremos início a criação de stored procedures para manutenção de grupos, produtos e pessoas. Padronização é tudo!
Tecnologias utilizadas: Bematech, Delphi 6, BPLS, Firebird, Herança Visual e OOP.
Palavras chaves: OOP, Firebird, Automação, BPLS, Bematech.
9 COMENTÁRIOS
abraço
Alex
create procedure sp_produtos (
pCodigo d_inteiro,
pCodigodebarras d_barras,
pNome d_nome,
pGrupo d_inteiro,
pValorvenda d_valor,
pValorcompra d_valor,
pICMS d_valor,
pSubst d_n_ou_s,
pIsento d_n_ou_s,
pIncidencia d_n_ou_s,
pOpr d_opr,
pUsuario d_inteiro
)
as
begin
execute procedure sp_raise_error (pUsuario, 'PRODUTOS', pOpr);
if (popr = 'I') then
insert into produtos (codigo, codigodebarras, Nome, grupo, Valor_venda, Valor_compra, ICMS, e_Substituto, e_isento, sem_incidencia)
values (:pCodigo, :pcodigodebarras, :pNome, :pgrupo, :pValor_venda, :pValor_compra, :pICMS, :pSubst, :pisento, :pincidencia)
if (popr = 'A') then
update produtos
set Codigodebarras = :pcodigodebarras,
Nome= :pNome,
grupo= :pGrupo,
Valor_venda=:pValorVenda,
Valor_Compra=:pValorCompra,
ICMS =:pICMS,
e_Substituto= :pSubst,
e_isento= :pisento,
sem_incidencia= :pincidencia
where Codigo = :pcodigo;
if (pOpr = 'E') then
delete from produtos
where codigo = :pCodigo;
end;
Alguns fatores podem levar a dar problema quando se usa store procedures. O problema pode estar na instrução do banco de dados ou até mesmo na codificação do delphi.
Se puder, me envie o banco de dados em questão para que eu verifique aqui e tente te ajudar.
luis.c.godinho@hotmail.com
Abs.!
Ao adicionar a procedure abaixo:
CREATE PROCEDURE "sp_get_gerador" (pNome Varchar(50)) returns (pValor INTEGER)
AS
DECLARE VARIABLE vStm Varchar(500);
BEGIN
vStm = 'select next value for ' || pNome || ' from rdb$database';
EXECUTE STATEMENT vStm INTO :pValor;
SUSPEND;
END;
Estou recebendo o seguinte erro:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 6, column 8.
STATEMENT.
Poderia me ajudar ?
Eu rodei esta SQL de criação da procedure aqui e criou normalmente.
Estou usando o FB 2.5, qual versão esta usando ai?
Abs.!
Um abraço e até mais.
create procedure sp_get_gerador (pNome varchar(50)) returns (pValor d_inteiro)
as
declare variable vStm varchar(500);
begin
vStm = 'select next value for ' || pNome || ' from rdb$databases';
execute statement vStm into :pValor;
suspend;
end;
Acontece o seguinte erro:
ISC ERROR CODE:335544569
ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -104
Unexpected end of command - line 3, column 34
o que está errado

download


