[firebase-br] SP's
Marcelo
mmfirebase em brturbo.com.br
Dom Set 10 13:44:22 -03 2006
Testando
Edvaldo (bol) escreveu:
> 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
>
>
>
Mais detalhes sobre a lista de discussão lista