[firebase-br] Stored Procedure

luiz lopes luizcarlozlopez em yahoo.com.br
Sáb Nov 12 13:17:14 -03 2005


PELO AMOR DE DEUS, 
 
COMO EU FAÇO PRA ME DISFILIAR DESTE CLUBE FIRE BASE, SE VOCÊ SOUBER OU SOUBER DE ALGUEM QUE SAIBA. 
 
PEÇO ENCARECIDAMENTE PRA ME AVISAR A FORMA, POIS ESTE EMAIL É PROFISSIONAL E EU NÃO POSSO MUDA-LO, MINHA CAIXA VIVE CHEIA DE EMAILS DESTE CLUBE.
 
AGRADECIMENTOS FRATERNO.
 
LUIZ CARLOS LOPES

Edson <edson.vieira em atmasoftwares.com.br> escreveu:
Ola, caso não tenha nenhum erro digitado no código de alteração da procedure 
(como visto abaixo) e so executar dentro da query mesmo, ha não esquece de 
desabilitar a opcao ParamCheck c nao ele vai querer testar o parametros e 
retornará um erro (utilizando o IBX)

t +



----- Original Message ----- 
From: "Junior" 
To: 

Sent: Friday, November 11, 2005 2:55 PM
Subject: [firebase-br] Stored Procedure


Olá amigos.

Vou usar o e-mail do nosso amigo sobre SP.

Desenvolvi um sistema com Delphi e FireBird que está rodando numa empresa. 
Quando há necessidade de alterar alguma tabela utilizo 'Alter tabble....' / 
'Create table....' e assim por diante.

No caso a baixo de uma SP eu posso fazer da seguinte forma:

QyAtualiza é minha query p/ atualização das tabelas

QyAtualiza.close;

QyAtualiza.sql.clear;

QyAtualiza.add('CREATE PROCEDURE CALC_CUSTO_PRODUTOS (');
QyAtualiza.add('WPRODUTO_ID INTEGER)');
QyAtualiza.add('RETURNS (');
QyAtualiza.add('WCUSTO NUMERIC(9,2))');
QyAtualiza.add('AS');
QyAtualiza.add('DECLARE VARIABLE WPRODUTO_ID2 INTEGER;');
QyAtualiza.add('DECLARE VARIABLE WCUSTOPARCIAL NUMERIC(9,2);');
QyAtualiza.add('DECLARE VARIABLE WICMS NUMERIC(9,2);');
QyAtualiza.add('DECLARE VARIABLE WMONTADO CHAR(1);');
QyAtualiza.add('DECLARE VARIABLE WFORNECEDOR_ID INTEGER;');
QyAtualiza.add('begin');
QyAtualiza.add('wCusto=0;');
QyAtualiza.add('Select montado, fornecedor_id from produtos where');
QyAtualiza.add('produtos.registro_id=:wproduto_id into :wmontado, 
:wfornecedor_id;');
QyAtualiza.add('-- Select fornecedor_id from produtos where');
QyAtualiza.add('produtos.registro_id=:wproduto_id into :wfornecedor_id;');
QyAtualiza.add('if (wMontado='F') then /* Se **** NÃO **** FOR UM PRODUTO 
MONTADO */');
QyAtualiza.add('begin');
QyAtualiza.add('select icms from agenda where');
QyAtualiza.add('agenda.registro_id=:wFornecedor_id into :wICMS;');
QyAtualiza.add('select Coalesce((valor_compra *');
QyAtualiza.add('(1-(:wICMS/100)))+(valor_Compra*(IPI/100)),0) from 
produtos');
QyAtualiza.add('where registro_id=:wproduto_id into wcusto;');
QyAtualiza.add('end');
QyAtualiza.add('if (wMontado='T') then /* Se **** FOR **** UM PRODUTO 
MONTADO */');
QyAtualiza.add('begin');
QyAtualiza.add('for Select produto_id, Coalesce((qtde * (Select wCusto');
QyAtualiza.add('from Calc_Custo_Produtos(romaneios.produto_id))),0)');
QyAtualiza.add('from romaneios where montagem_id=:wproduto_id');
QyAtualiza.add('into :wproduto_id2, :wcustoparcial');
QyAtualiza.add('do');
QyAtualiza.add('wcusto=:wcusto+:wcustoparcial;');
QyAtualiza.add('end');
QyAtualiza.add('suspend;');
QyAtualiza.add('end');

QyAtualiza.ExecSQL;
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa



______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa

		
---------------------------------
 Yahoo! Acesso Grátis: Internet rápida e grátis.
Instale o discador agora!


Mais detalhes sobre a lista de discussão lista