From: Josauro S.J. <jo...@ca...> - 2003-12-02 17:16:35
|
Hello Carlos 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?=20 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As = System.EventArgs) Handles MyBase.Load 'Put user code to initialize the page here Dim objRecibo =3D New RecibosDB Dim dr As FbDataReader =3D objRecibo.GetRecibo(100100.0) DataList1.DataSource =3D dr DataList1.DataBind() End Sub ******** GET RECIBO(100100) **************** Public Function GetRecibo(ByVal Codigo As Double) As FbDataReader Dim myConnection =3D New FbConnection(GetFBConnectionString) myConnection.Open() Dim myTxn As FbTransaction myTxn =3D myConnection.BeginTransaction() Dim selectCmd As String selectCmd =3D "EXECUTE PROCEDURE GET_RECIBO(@REC_CODIGO)" Dim myCommand =3D New FbCommand(selectCmd, myConnection, myTxn) myCommand.CommandType =3D CommandType.StoredProcedure myCommand.parameters.add("@REC_CODIGO", FbType.Double).Value =3D Codigo Dim Result As FbDataReader =3D = myCommand.executeReader(CommandBehavior.CloseConnection) Return Result myTxn.Rollback() myTxn.Dispose() myCommand.Dispose() myConnection.Close() End Function ********** FIREBIRD *************** 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 */ 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 ; 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 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 2:50 PM Subject: Re: [Firebird-net-provider] I need to return only one record = to a DataSet Hello: > Why it's don't work, I need to return only one record to a DataSet = but=20 > it's return nothing.See code below > (In BD had a record with key 100100.0 (I run procedure in IBExpert = with=20 > key 100100 and it's return a record) I think this was solved yet some time ago, or it's a new problem you = are=20 having ?? -- Best regards Carlos Guzm=E1n =C1lvarez Vigo-Spain |