[firebase-br] SP's
Edvaldo (bol)
evgomes em bol.com.br
Dom Set 10 13:28:01 -03 2006
CREATE PROCEDURE ATUALIZABANCADOP AS
DECLARE VARIABLE VDATA DATE;
DECLARE VARIABLE VPRODUTO INTEGER;
DECLARE VARIABLE VENTRADA FLOAT;
DECLARE VARIABLE VVALORENTRADA DOUBLE PRECISION;
DECLARE VARIABLE VSAIDA FLOAT;
DECLARE VARIABLE VVALORSAIDA DOUBLE PRECISION;
DECLARE VARIABLE VBANCADO FLOAT;
DECLARE VARIABLE VVALORBANCADO DOUBLE PRECISION;
DECLARE VARIABLE VBANCADOAUX FLOAT;
DECLARE VARIABLE VVALORBANCADOAUX DOUBLE PRECISION;
DECLARE VARIABLE VBANCADOINICIAL FLOAT;
DECLARE VARIABLE VVALORBANCADOINICIAL DOUBLE PRECISION;
BEGIN
FOR SELECT
CODIGO,COALESCE(BANCADOINICIAL,0),COALESCE(VALORBANCADOINICIAL,0)
FROM PRODUTO WHERE CODIGO IN (SELECT PRODUTO FROM MOVIMENTACAO
WHERE PRODUTO IS NOT NULL)
INTO vProduto,
vBancadoInicial,
vValorBancadoInicial
DO BEGIN
FOR SELECT M.DATA,
COALESCE(M.ENTRADA,0),
COALESCE(M.VALORENTRADA,0),
COALESCE(M.SAIDA,0),
COALESCE(M.VALORSAIDA,0),
COALESCE(M.BANCADO,0),
COALESCE(M.VALORBANCADO,0)
FROM MOVIMENTACAO M
JOIN PRODUTO P ON (M.PRODUTO = P.CODIGO)
WHERE M.PRODUTO =:vPRODUTO
AND M.DATA >
COALESCE(P.DATAESTOQUE,CURRENT_TIMESTAMP-1000)
ORDER BY M.DATA
INTO vData,
vEntrada,
vValorEntrada,
vSaida,
vValorSaida,
vBancado,
vValorBancado
DO BEGIN
vBancadoAux = :vBancadoInicial + :vEntrada - :vSaida;
vValorBancadoAux = 0;
if (vValorBancadoInicial + vValorEntrada > 0) then
begin
if (vBancadoInicial > 0) then
vValorBancadoAux = (:vValorBancadoInicial +
:vValorEntrada) / (:vBancadoInicial + :vEntrada) * (:vBancadoInicial +
:vEntrada - :vSaida);
else
vValorBancadoAux = (:vValorEntrada /
:vEntrada) * (:vBancadoInicial + :vEntrada - :vSaida);
end
if (vValorBancadoAux < 0 or vValorBancadoAux is null)
then
vValorBancadoAux = 0;
UPDATE MOVIMENTACAO
SET BANCADO = :vBancadoAux,
VALORBANCADO = :vValorBancadoAux
WHERE PRODUTO = :vProduto
AND DATA = :vData;
vBancadoInicial = vBancadoAux;
vValorBancadoInicial = vValorBancadoAux;
END
if (vBancadoAux > 0) then
UPDATE PRODUTO SET PRECOCUSTO = cast(:vValorBancadoAux /
:vBancadoAux * 100 as integer)/100,
ESTOQUE = :vBancadoAux
WHERE CODIGO =:vProduto;
else
UPDATE PRODUTO SET PRECOCUSTO = 0,
ESTOQUE = :vBancadoAux
WHERE CODIGO =:vProduto;
WHEN ANY DO
BEGIN
INSERT INTO ERRO_LOG (CODIGOERRO,MENSAGEM) VALUES
(SQLCODE,CAST(:VPRODUTO AS VARCHAR(20)));
END
END
END
----- Original Message -----
From: "Cleiton Maciel Reis da Silva" <cleiton.maciel em yahoo.com.br>
To: <lista em firebase.com.br>
Sent: Saturday, September 09, 2006 3:46 PM
Subject: [firebase-br] SP's
Gostaria de usar em minha aplicacao Stored Procedures
para
Insert, Updade, Delete, Select,
alguem por acaso tem algum exemplo de fontes, ou links
que possam me ajudar a utilizar esses comandos
pq os que ja vi nao me ajudaram
Qro saber como faco um insert usando o SP, Updates etc,
se alguem tiver algum exeplo facil pra mim indicar ficarei muito Grato,
Té mais colegas
---------------------------------
Yahoo! Search
Música para ver e ouvir: You're Beautiful, do James Blunt
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.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
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.12.2/441 - Release Date: 07/09/2006
Mais detalhes sobre a lista de discussão lista