Sorry for disturb.

 

My problema was a Type Mismatch in SP, not a fb.net provider problem.

 

Thanks and see you.

 

De: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] En nombre de
Pere Castanyer
Enviado el: jueves, 13 de marzo de 2008 14:26
Para: [email protected]
Asunto: [Firebird-net-provider] ExecuteScalar() throwing a Arithmetic
Exception (fwd)

 

Hi all,

 

I’m trying to get the returned value of a SP with The Fb provider. I’m using
these code:

 

   string command = "Execute procedure
dib_mscrm_ncom(@REPRCODI,@ESSM,@DIRECCIO,@DIRECCIOCP,@DIRECCIOPOB,@CCC," +

 
"@DIRECCIOPAIS,@DIRECCIOPROV,@DG,@CODISECCIO,@SERIE,@SITUCOM,@ENTITAT,@OFICI
NA,@CLIECODI,@BANC)";

            FirebirdSql.Data.FirebirdClient.FbConnection fb =

               new
FirebirdSql.Data.FirebirdClient.FbConnection(@"Server=192.168.0.86;User=SYSD
BA;Password=****;" +

               "Database=/PATHTODATABASE.fdb; ");

            fb.Open();

            FirebirdSql.Data.FirebirdClient.FbTransaction ft =
fb.BeginTransaction();

            FirebirdSql.Data.FirebirdClient.FbCommand fc = new
FirebirdSql.Data.FirebirdClient.FbCommand(command, fb, ft);

            fc.CommandType = CommandType.StoredProcedure;

            fc.Parameters.Add("@REPRCODI",
FirebirdSql.Data.FirebirdClient.FbDbType.VarChar, 10, "REPRCODI").Direction
=

            ParameterDirection.Input;

            fc.Parameters.Add("@ESSM",
FirebirdSql.Data.FirebirdClient.FbDbType.SmallInt, 0, "ESSM").Direction =

            ParameterDirection.Input;

            fc.Parameters.Add("@DIRECCIO",
FirebirdSql.Data.FirebirdClient.FbDbType.VarChar, 75, "DIRECCIO").Direction
=

            ParameterDirection.Input;

            fc.Parameters.Add("@DIRECCIOCP",
FirebirdSql.Data.FirebirdClient.FbDbType.VarChar, 16,
"DIRECCIOCP").Direction =

            ParameterDirection.Input;

            fc.Parameters.Add("@DIRECCIOPOB",
FirebirdSql.Data.FirebirdClient.FbDbType.VarChar, 50,
"DIRECCIOPOB").Direction =

            ParameterDirection.Input;

            fc.Parameters.Add("@CCC",
FirebirdSql.Data.FirebirdClient.FbDbType.VarChar, 20, "CCC").Direction =

            ParameterDirection.Input;

            fc.Parameters.Add("@DIRECCIOPAIS",
FirebirdSql.Data.FirebirdClient.FbDbType.VarChar, 35,
"DIRECCIOPAIS").Direction =

            ParameterDirection.Input;

            fc.Parameters.Add("@DIRECCIOPROV",
FirebirdSql.Data.FirebirdClient.FbDbType.VarChar, 35,
"DIRECCIOPROV").Direction =

            ParameterDirection.Input;

            fc.Parameters.Add("@DG",
FirebirdSql.Data.FirebirdClient.FbDbType.VarChar, 2, "DG").Direction =

            ParameterDirection.Input;

            fc.Parameters.Add("@CODISECCIO",
FirebirdSql.Data.FirebirdClient.FbDbType.Integer, 1, "CODISECCIO").Direction
=

            ParameterDirection.Input;

            fc.Parameters.Add("@SERIE",
FirebirdSql.Data.FirebirdClient.FbDbType.VarChar, 10, "SERIE").Direction =

            ParameterDirection.Input;

            fc.Parameters.Add("@SITUCOM",
FirebirdSql.Data.FirebirdClient.FbDbType.VarChar, 10, "SITUCOM").Direction =

            ParameterDirection.Input;

            fc.Parameters.Add("@ENTITAT",
FirebirdSql.Data.FirebirdClient.FbDbType.VarChar, 10, "ENTITAT").Direction =

            ParameterDirection.Input;

            fc.Parameters.Add("@OFICINA",
FirebirdSql.Data.FirebirdClient.FbDbType.VarChar, 10, "OFICINA").Direction =

            ParameterDirection.Input;

            fc.Parameters.Add("@CLIECODI",
FirebirdSql.Data.FirebirdClient.FbDbType.VarChar, 20, "CLIECODI").Direction
=

            ParameterDirection.Input;

            fc.Parameters.Add("@BANC",
FirebirdSql.Data.FirebirdClient.FbDbType.Integer, 1, "BANC").Direction =

            ParameterDirection.Input;

            fc.Parameters[0].Value = codirepr;

            fc.Parameters[1].Value = sm;

            fc.Parameters[2].Value = dir;

            fc.Parameters[3].Value = dircp;

            fc.Parameters[4].Value = dirpob;

            fc.Parameters[5].Value = CCC;

            fc.Parameters[6].Value = dirpais;

            fc.Parameters[7].Value = dirprov;

            fc.Parameters[8].Value = dg;

            fc.Parameters[9].Value = codi;

            fc.Parameters[10].Value = "'" + serie + "'";

            fc.Parameters[11].Value = situcom;

            fc.Parameters[12].Value = entitat;

            fc.Parameters[13].Value = oficina;

            fc.Parameters[14].Value = "'" +LbCodiClient.Text+ "'";

            fc.Parameters[15].Value =  Int32.Parse(banc);

            object y;

            y=fc.ExecuteScalar();ßProblems here

            ft.Commit();

            fb.Close();

 

And I’m receiving the “Arithmetic Exception, numeric Overflow, or string
truncation.

 

The SP is this one:

 

CREATE PROCEDURE DIB_MSCRM_NCOM (

    reprcodi varchar(10),

    essm smallint,

    direccio varchar(75),

    direcciocp varchar(16),

    direcciopob varchar(50),

    ccc varchar(20),

    direcciopais varchar(35),

    direccioprov varchar(35),

    dg varchar(2),

    codiseccio integer,

    serie varchar(10),

    situcom varchar(10),

    entitat varchar(10),

    oficina varchar(10),

    cliecodi varchar(20),

    banc integer)

returns (

    pevcpk varchar(18))

as

declare variable cliepk varchar(18);

declare variable cliecif varchar(16);

declare variable comptador varchar(20);

declare variable reprpk varchar(18);

declare variable clienomf varchar(75);

declare variable data date;

declare variable situcompk varchar(18);

declare variable seccpk varchar(18);

declare variable almapk varchar(18);

declare variable seripk varchar(18);

declare variable lnegpk varchar(18);

declare variable situpk varchar(18);

declare variable situvencpk varchar(18);

declare variable pk_nova varchar(18);

declare variable fpagpk varchar(18);

begin

[RIPED…………………………………………………RIPED]

        select pevc_pk from pevc

        where pevc_pk = :Pk_nova

        into :pevcpk;

        --aqui posem el representant de la comanda.

        insert into pevcrepr

        (

        pevcrepr.pevcrepr_repr_pk,

        pevcrepr.pevcrepr_pevc_pk,

        pevcrepr.pevcrepr_principal

        )

        values

        (

        :reprpk,

        :pevcpk,

        1

        );

  suspend;

end

----------------------------------------------------------------------------
------------

And This is working great on IBExperts.

 

Any hints?

(Firebird .Net provider 2.01 and Firebird 2.0 Database)

Thanks in advance.

--

Pere Castanyer Sardà

Serveis Informàtics DIBOSCH, S.L.

 



__________ Información de NOD32, revisión 2944 (20080313) __________

Este mensaje ha sido analizado con NOD32 antivirus system
http://www.nod32.com

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Firebird-net-provider mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider

Reply via email to