From:
<car...@te...> - 2003-12-02 17:27:13
|
Hello: > It's a new problema, the last work fine (To return many record's) . > this problem is than I execute a procedure to get one record but it > return nothing in a dataset, if a execute in IBExpert with the same key > it's return one record. > Look at the list above to see some problem? Ok, Can you try it to change this: selectCmd = "EXECUTE PROCEDURE GET_RECIBO(@REC_CODIGO)" with selectCmd = "GET_RECIBO" and with this SP please. CREATE PROCEDURE GET_RECIBO ( REC_CODIGO NUMERIC(15,2)) RETURNS ( REC_CLIENTE NUMERIC(15,2), REC_DATA DATE, REC_DATA_LIMITE DATE, REC_VALOR_ALUGUEL NUMERIC(15,2), REC_VALOR_TAXA NUMERIC(15,2), REC_VALOR_MULTA_DESCONTO NUMERIC(15,2), VR_VALOR_LIQUIDO NUMERIC(15,2), VR_VALOR_BRUTO NUMERIC(15,2), REC_DESCRICAO_PERIODO VARCHAR(40), REC_NUMERO_RECIBO INTEGER, REC_NUMERO_BANCARIO VARCHAR(15)) AS DECLARE VARIABLE VR_MULTA_DESCONTO CHAR(1); BEGIN /* Procedure Text */ FOR SELECT REC_CLIENTE, REC_DATA, REC_DATA_LIMITE, REC_VALOR_ALUGUEL, REC_VALOR_TAXA, REC_MULTA_DESCONTO, REC_VALOR_MULTA_DESCONTO, REC_DESCRICAO_PERIODO, REC_NUMERO_RECIBO, REC_NUMERO_BANCARIO FROM RECIBO WHERE REC_CODIGO = :REC_CODIGO INTO :REC_CLIENTE, :REC_DATA, :REC_DATA_LIMITE, :REC_VALOR_ALUGUEL, :REC_VALOR_TAXA, :VR_MULTA_DESCONTO, :REC_VALOR_MULTA_DESCONTO, :REC_DESCRICAO_PERIODO, :REC_NUMERO_RECIBO, :REC_NUMERO_BANCARIO DO BEGIN IF (VR_MULTA_DESCONTO = 'D') THEN BEGIN VR_VALOR_BRUTO = :REC_VALOR_ALUGUEL + :REC_VALOR_TAXA; VR_VALOR_LIQUIDO = VR_VALOR_BRUTO - REC_VALOR_MULTA_DESCONTO; END ELSE BEGIN VR_VALOR_BRUTO = :REC_VALOR_ALUGUEL + :REC_VALOR_TAXA + :REC_VALOR_MULTA_DESCONTO; VR_VALOR_LIQUIDO = VR_VALOR_BRUTO - :REC_VALOR_MULTA_DESCONTO; END SUSPEND; END END -- Best regards Carlos Guzmán Álvarez Vigo-Spain |