Blob Error: {"arithmetic exception, numeric overflow, or string truncation\r\nstring right truncation"}

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Blob Error: {"arithmetic exception, numeric overflow, or string truncation\r\nstring right truncation"}

GUILLERMO FAZZOLARI

Good morning.
We are having problems when trying to save a serialized object as xml in a blob field.
The definition of the table is as follows:

CREATE TABLE TPROPIEDADESPERSONA
(
  Integer IDENTITY NOT NULL,
  RespondentID Integer NOT NULL,
  IDPROPIEDAD Integer NOT NULL,
  ID Integer NOT NULL,
  DATE NOT NULL Timestamp,
  DESCRIPTION VARCHAR255NULL,
  IDPRESTADOR Integer NOT NULL,
  POSITION Integer,
  MASCARA Integer NOT NULL,
  Blob INFOADICIONAL sub_type 1
  Timestamp FechaAlta NOT NULL,
  IDLOGINALTA Integer NOT NULL,
  ULTIMAMODIF Timestamp,
  IDLOGINULTIMAMODIF Integer,
  PRIMARY KEY (IDENTITY, RespondentID, IDPROPIEDAD, ID)
);

Everything is with firebird 3 and the latest version of FirebirdClient.dll (5.1.1)

The multiturnos.xml file contains an example of serialized object and it is only the effects you see that's what we're keeping (basically a string of about 32KB). This object contains the reference to the file list (the definition of the location and then go for them and get the bytes and so to download). This according to the logic of the system in question.
However, when the object to serialize is small (the information of 3 or 4 files for example) everything works fine. but when it grows you get the error:

"Arithmetic exception, numeric overflow, or string truncation \ r \ nSTRING right truncation"

The portion of code is as follows:

// aux
 public override DbCommand crearComandoConConexion (stmt string, bool abreConexion, DbConnection Connection, DbTransaction transaction)
        {
            var result = new FbCommand (stmt, as FbConnection connection, as FbTransaction transaction);
            result.CommandTimeout = 0;
            if (abreConexion conexion.State &&! = ConnectionState.Open)
                result.Connection.Open ();

            return result;
        }

// aux
 FbParameter private agregarInfoAdicional (FbCommand cmd, string string, string nombreParam = "@infoAdicional")
        {
            var cmd.CreateParameter p = ();
            p.ParameterName = nombreParam;
            p.FbDbType = FbDbType.Text;
            p.Value = string;
            return p;
        }

// aux
 private void armarParametrosPropiedadesPersona (PropiedadPersona property, id int, int idLogin, FbCommand / * DbCommand * / cmd)
        {
            cmd.agregar ( "@ identity" propiedad.idEntidad);
            cmd.agregar ( "@ RespondentID" propiedad.idPersona);
            cmd.agregar ( "@ idPropiedad" propiedad.idPropiedad);
            cmd.agregar ( "@ id", id);
            cmd.agregar ( "@ date" propiedad.fecha);

            if (! string.IsNullOrEmpty (propiedad.descripcion))
                cmd.agregar ( "@ description" propiedad.descripcion);
            else
                cmd.agregar ( "@ description", null);

            cmd.agregar ( "@ idPrestador" propiedad.idPrestador);

            if (propiedad.posicion> 0)
                cmd.agregar ( "@ position" propiedad.posicion);
            else
                cmd.agregar ( "@ position", null);
            cmd.agregar ( "@ mask" propiedad.mascara);
            
            cmd.Parameters.Add (agregarInfoAdicional (cmd, propiedad.infoAdicional.ToString ()));
            
            cmd.agregar ( "@ idLogin" idLogin);
        }
// ------------------
// ------------------

This is the method Where the mistake OCCURS

 FbConnection connection ....
 ......
 
 using (FbTransaction tr = conexion.BeginTransaction ()) {
 ....
 ....
   using (var cmd = crearComando (stmt, true, connection, tr) as FbCommand) // defined above for your understanding
                {
                    armarParametrosPropiedadesPersona (property, result, idLogin, cmd); // defined above for your understanding
                    cmd.ExecuteNonQuery (); // Exception !!!
                }


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

_______________________________________________
Firebird-net-provider mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider
zab
Reply | Threaded
Open this post in threaded view
|

Re: Blob Error: {"arithmetic exception, numeric overflow, or string truncation\r\nstring right truncation"}

zab
> but when it grows you get the error

How many bytes needed for error to occur? Is it greater 8192 bytes?

------------------------------------------------------------------------------
_______________________________________________
Firebird-net-provider mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider