ClientDataSet e Outros...
Pessoal to com 3 problemas que não to conseguindo resolver, no meu projeto final para faculdade...
1.: Essa query não funciona no Delphi, mas IBExpert roda normalmente...
select PO.DESCRICAO, IPO.QUANTIDADE, IPO.PRECOVENDA from ITENS_PEPRO IPO
inner join PRODUTOS PO on (IPO.CODPROD = PO.CODPROD)
where IPO.CODPED = :CODPED
union all
select PA.DESCRICAO, IPA.QUANTIDADE, IPA.PRECOVENDA from ITENS_PEPA IPRA
inner join PRATOS PA on (IPA.CODPRATO = PA.CODPRATO)
where IPA.CODPED = :CODPED
OBS.: Se eu retirar qualquer uma das linha que contenham o WHERE funciona!! Só está aceitando um WHERE!!!
2.: Essa Stored Procedure está retornando null, eu acho que tem haver com as variáveis, que eu não sei se estão de forma correta...
/* PROCEDURE PARA CALCULAR TOTAL DO PEDIDO */
SET TERM ^ ;
CREATE PROCEDURE CALCULATOTALPEDIDO (
CODPED INTEGER)
AS
DECLARE VARIABLE VSOMA1 NUMERIC(15,2);
DECLARE VARIABLE VSOMA2 NUMERIC(15,2);
DECLARE VARIABLE VTOTAL NUMERIC(15,2);
BEGIN
SELECT SUM(QUANTIDADE * PRECOVENDA) FROM ITENS_PEPA WHERE CODPED = :CODPED INTO :VSOMA1;
SELECT SUM(QUANTIDADE * PRECOVENDA) FROM ITENS_PEPO WHERE CODPED = :CODPED INTO :VSOMA2;
VTOTAL = :VSOMA1 + :VSOMA2;
UPDATE PEDIDOS SET TOTAL = :VTOTAL WHERE CODPED = :CODPED;
END
^
SET TERM ; ^
3.: (Essa eu tô sem idéia...) Preciso de uma query + ou - assim...
CREATE TRIGGER TRG_POSINSERIRITENSPEPRA FOR ITENS_PEPRA
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
UPDATE PRODUTOS SET ESTOQUE = ESTOQUE - (NEW.QUANTIDADE * COMPOE.QUANTIDADE) WHERE CODPROD IN ( SELECT CODPROD, QUANTIDADE FROM COMPOE WHERE CODPRATO = NEW.CODPRATO);
EXECUTE PROCEDURE CALCULATOTALPEDIDO(NEW.CODPED);
END
^
Eu sei que o uso do IN só pode se o select retornar apenas uma coluna... mas qual seria a solução para esse problema???
Essa Trigger é para quando for adicionado um prato ao pedido ela consultar que produtos e em quais quantidades compoem o prato e dar baixa no estoque...
Pessoal vou ficar muito grato se alguem puder me passar alguma dica... Tenho que resolver esses problemas (e outros) para apresentar meu projeto final dia 15/12/03....
Se alguem tambem tiver alguma dica de como eu posso imprimir um cupom (não fiscal) eu també agradeço...
Um abraço!
Douglas C. Santos
1.: Essa query não funciona no Delphi, mas IBExpert roda normalmente...
select PO.DESCRICAO, IPO.QUANTIDADE, IPO.PRECOVENDA from ITENS_PEPRO IPO
inner join PRODUTOS PO on (IPO.CODPROD = PO.CODPROD)
where IPO.CODPED = :CODPED
union all
select PA.DESCRICAO, IPA.QUANTIDADE, IPA.PRECOVENDA from ITENS_PEPA IPRA
inner join PRATOS PA on (IPA.CODPRATO = PA.CODPRATO)
where IPA.CODPED = :CODPED
OBS.: Se eu retirar qualquer uma das linha que contenham o WHERE funciona!! Só está aceitando um WHERE!!!
2.: Essa Stored Procedure está retornando null, eu acho que tem haver com as variáveis, que eu não sei se estão de forma correta...
/* PROCEDURE PARA CALCULAR TOTAL DO PEDIDO */
SET TERM ^ ;
CREATE PROCEDURE CALCULATOTALPEDIDO (
CODPED INTEGER)
AS
DECLARE VARIABLE VSOMA1 NUMERIC(15,2);
DECLARE VARIABLE VSOMA2 NUMERIC(15,2);
DECLARE VARIABLE VTOTAL NUMERIC(15,2);
BEGIN
SELECT SUM(QUANTIDADE * PRECOVENDA) FROM ITENS_PEPA WHERE CODPED = :CODPED INTO :VSOMA1;
SELECT SUM(QUANTIDADE * PRECOVENDA) FROM ITENS_PEPO WHERE CODPED = :CODPED INTO :VSOMA2;
VTOTAL = :VSOMA1 + :VSOMA2;
UPDATE PEDIDOS SET TOTAL = :VTOTAL WHERE CODPED = :CODPED;
END
^
SET TERM ; ^
3.: (Essa eu tô sem idéia...) Preciso de uma query + ou - assim...
CREATE TRIGGER TRG_POSINSERIRITENSPEPRA FOR ITENS_PEPRA
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
UPDATE PRODUTOS SET ESTOQUE = ESTOQUE - (NEW.QUANTIDADE * COMPOE.QUANTIDADE) WHERE CODPROD IN ( SELECT CODPROD, QUANTIDADE FROM COMPOE WHERE CODPRATO = NEW.CODPRATO);
EXECUTE PROCEDURE CALCULATOTALPEDIDO(NEW.CODPED);
END
^
Eu sei que o uso do IN só pode se o select retornar apenas uma coluna... mas qual seria a solução para esse problema???
Essa Trigger é para quando for adicionado um prato ao pedido ela consultar que produtos e em quais quantidades compoem o prato e dar baixa no estoque...
Pessoal vou ficar muito grato se alguem puder me passar alguma dica... Tenho que resolver esses problemas (e outros) para apresentar meu projeto final dia 15/12/03....
Se alguem tambem tiver alguma dica de como eu posso imprimir um cupom (não fiscal) eu també agradeço...
Um abraço!
Douglas C. Santos
Dodacs
Curtidas 0
Respostas
Dodacs
19/11/2003
SOBE
GOSTEI 0