From: Josauro S.J. <jo...@ca...> - 2003-12-02 18:23:33
|
Carlos I found the error, sorry my key in table RECIBO is numeric 18.0 and in = procedure GET_RECIBO I get parameter numeric 15.2 Feed back selectCmd =3D "GET_RECIBO"=20 don't work in my instalation, I need to put SELECT * FROM GET_RECIBO. In procedure don't need to put FOR ....DO.. Tank's...=20 Josauro S.J. Diretor e-mail: jo...@ca... site: www.casasoft.inf.br Portal de im=F3veis www.IndicadorDeImoveis.com.br O =FAnico Portal de im=F3veis 100% on-line com as imobili=E1rias, = im=F3veis atualizados minuto a minuto a certeza de que o im=F3vel = anunciado realmente esta Dispon=EDvel. ----- Original Message -----=20 From: Carlos Guzm=E1n =C1lvarez=20 To: Josauro S.J.=20 Cc: fir...@li...=20 Sent: Tuesday, December 02, 2003 3:27 PM Subject: Re: [Firebird-net-provider] I need to return only one record = to a DataSet 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=20 > return nothing in a dataset, if a execute in IBExpert with the same = key=20 > it's return one record. > Look at the list above to see some problem? Ok, Can you try it to change this: selectCmd =3D "EXECUTE PROCEDURE GET_RECIBO(@REC_CODIGO)" with selectCmd =3D "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 =3D :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 =3D 'D') THEN BEGIN VR_VALOR_BRUTO =3D :REC_VALOR_ALUGUEL + :REC_VALOR_TAXA; VR_VALOR_LIQUIDO =3D VR_VALOR_BRUTO - REC_VALOR_MULTA_DESCONTO; END ELSE BEGIN VR_VALOR_BRUTO =3D :REC_VALOR_ALUGUEL + :REC_VALOR_TAXA + :REC_VALOR_MULTA_DESCONTO; VR_VALOR_LIQUIDO =3D VR_VALOR_BRUTO - :REC_VALOR_MULTA_DESCONTO; END SUSPEND; END END -- Best regards Carlos Guzm=E1n =C1lvarez Vigo-Spain |