Campo Image en SQL Server

13/09/2004 - 21:34 por David | Informe spam
Saludos a todos, el problema que tengo es el siguiente:
Tengo una base de datos SQL Server 2000 con una tabla que
se llama Images la cual a su vez tiene 3 campos Image pero
lo que quiero es actualizar un solo campo Image. Al
momento de actualizar la base me salta una excepcion que
dice "El objeto debe implementar IConvertible" y no se que
hacer. Muchas Gracias.

Preguntas similare

Leer las respuestas

#1 Alejandro Perez
13/09/2004 - 22:08 | Informe spam
Hola David. Puedes exponer un poco d codigo para ver como
lo estas haciendo y conseguir el problema?

Gracias

Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela


Saludos a todos, el problema que tengo es el siguiente:
Tengo una base de datos SQL Server 2000 con una tabla que
se llama Images la cual a su vez tiene 3 campos Image


pero
lo que quiero es actualizar un solo campo Image. Al
momento de actualizar la base me salta una excepcion que
dice "El objeto debe implementar IConvertible" y no se


que
hacer. Muchas Gracias.
.

Respuesta Responder a este mensaje
#2 David
13/09/2004 - 22:23 | Informe spam
El codigo es el siguiente, donde sp es el nombre del sp
que tiene el codigo SQL. Ademas te comento que uso el
ApplicationBlock 1.0 y psp son los parametros de mi Store
procedure. Muchas Gracias

using (SqlConnection conn = new SqlConnection
(m_connectStr))
{
conn.Open();
using (SqlTransaction trans = conn.BeginTransaction())
{
try
{
SqlHelper.ExecuteNonQuery(trans, sp, psp);
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
throw ex;

}
finally
{
conn.Close();
}
}
}
Respuesta Responder a este mensaje
#3 Alejandro Perez
13/09/2004 - 23:14 | Informe spam
Ok, podemos empezar verificando lo siguiente:

1) Como esta haciendo la actualizacion el Stored Procedure
y que parametros recibe? Es decir, verificar que se le
esten pasando todos los parametros que el SP necesita.

Si comentas que solo quieres actualizar una imagen,
entonces el update en el SP deberia solo hacer set de un
campo, o solo de los parametros que no tengan valor nulos.

Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela


El codigo es el siguiente, donde sp es el nombre del sp
que tiene el codigo SQL. Ademas te comento que uso el
ApplicationBlock 1.0 y psp son los parametros de mi Store
procedure. Muchas Gracias

using (SqlConnection conn = new SqlConnection
(m_connectStr))
{
conn.Open();
using (SqlTransaction trans = conn.BeginTransaction())
{
try
{
SqlHelper.ExecuteNonQuery(trans, sp, psp);
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
throw ex;

}
finally
{
conn.Close();
}
}
}
.

Respuesta Responder a este mensaje
#4 David
14/09/2004 - 00:19 | Informe spam
Los parametros que paso son los correctos y el update del
Store Procedure tambien es el coorecto, o sea en el set
utilizo solo lo que quiero actualizar. Te cuento aglo el
modelo de mi aplicacion es PAGINA-COMPONENTE-
APPLICATIONBLOCK, cuando utilizo el siguiente en la pagina
me funciona pero al momento de utilizar las clases me da
el problema, ademas eso solo sucede con la actualizacion
ya que la insercion me funciona correctamente.

SqlConnection Connection = new SqlConnection
(@"Server=RESIDENCIA;Database=BKPINGAPP;Integrated
Security=True;");
/// <summary>
/// The SqlCommand will be used to insert the image into
the Images table </summary>
SqlCommand Command = new SqlCommand("UPDATE RESIDENTE SET
RESIDENTE_APROBADO = @aprobado,
RESIDENTE_RESOLUCION_USUARIO = @rusuario,
RESIDENTE_NRESOLUCION = @nresolucion,
RESIDENTE_LRESOLUCION = @lresolucion,
RESIDENTE_FRESOLUCION = @fresolucion,
RESIDENTE_DRESOLUCION = @dresolucion, RESIDENTE_MOTIVO =
@motivo, RESIDENTE_ACTA = @acta, RESIDENTE_NACTA = @nacta,
RESIDENTE_TACTA = @tacta WHERE RESIDENTE_ID = @id",
Connection);
/// <summary>

/// Id
SqlParameter pid = new SqlParameter("@id", SqlDbType.Int);
pid.Value = p[0];
Command.Parameters.Add(pid);

/// Aprobado
SqlParameter paprobado = new SqlParameter("@aprobado",
SqlDbType.Int);
paprobado.Value = p[1];
Command.Parameters.Add(paprobado);

/// Usuario
SqlParameter prusuario = new SqlParameter("@rusuario",
SqlDbType.VarChar);
prusuario.Value = p[2];
Command.Parameters.Add(prusuario);

/// NResolucion
SqlParameter pnresolucion = new SqlParameter
("@nresolucion", SqlDbType.VarChar);
pnresolucion.Value = p[3];
Command.Parameters.Add(pnresolucion);

/// LResolucion
SqlParameter plresolucion = new SqlParameter
("@lresolucion", SqlDbType.Int);
plresolucion.Value = p[4];
Command.Parameters.Add(plresolucion);

/// FResolucion
SqlParameter pfresolucion = new SqlParameter
("@fresolucion", SqlDbType.VarChar);
pfresolucion.Value = p[5];
Command.Parameters.Add(pfresolucion);

/// DResolucion
SqlParameter pdresolucion = new SqlParameter
("@dresolucion", SqlDbType.VarChar);
pdresolucion.Value = p[6];
Command.Parameters.Add(pdresolucion);

/// Motivo
SqlParameter pmotivo = new SqlParameter("@motivo",
SqlDbType.VarChar);
pmotivo.Value = p[7];
Command.Parameters.Add(pmotivo);

/// Acta
SqlParameter pacta = new SqlParameter("@acta",
SqlDbType.Image);
pacta.Value = p[8];
Command.Parameters.Add(pacta);

/// NActa
SqlParameter pnacta = new SqlParameter("@nacta",
SqlDbType.Int);
pnacta.Value = p[9];
Command.Parameters.Add(pnacta);

/// TActa
SqlParameter ptacta = new SqlParameter("@tacta",
SqlDbType.VarChar);
ptacta.Value = p[10];
Command.Parameters.Add(ptacta);

/// <summary>
/// Open the connection in order to retrieve the record
</summary>
Connection.Open();
/// <summary>
/// The SQL statement is executed. ExecuteNonQuery is used
since no records
/// will be returned. </summary>
Command.ExecuteNonQuery();
/// <summary>
/// The connection is closed </summary>
Connection.Close();*/
Respuesta Responder a este mensaje
#5 Octavio Hernandez
14/09/2004 - 14:11 | Informe spam
David,

Este artículo ha ayudado a mucha gente, echale un vistazo a ver si te sirve:

http://support.microsoft.com/defaul...-US;309158

Slds - Octavio

"David" escribió en el mensaje
news:180701c499df$b2ecda00$
Los parametros que paso son los correctos y el update del
Store Procedure tambien es el coorecto, o sea en el set
utilizo solo lo que quiero actualizar. Te cuento aglo el
modelo de mi aplicacion es PAGINA-COMPONENTE-
APPLICATIONBLOCK, cuando utilizo el siguiente en la pagina
me funciona pero al momento de utilizar las clases me da
el problema, ademas eso solo sucede con la actualizacion
ya que la insercion me funciona correctamente.

SqlConnection Connection = new SqlConnection
(@"Server=RESIDENCIA;Database=BKPINGAPP;Integrated
Security=True;");
/// <summary>
/// The SqlCommand will be used to insert the image into
the Images table </summary>
SqlCommand Command = new SqlCommand("UPDATE RESIDENTE SET
RESIDENTE_APROBADO = @aprobado,
RESIDENTE_RESOLUCION_USUARIO = @rusuario,
RESIDENTE_NRESOLUCION = @nresolucion,
RESIDENTE_LRESOLUCION = @lresolucion,
RESIDENTE_FRESOLUCION = @fresolucion,
RESIDENTE_DRESOLUCION = @dresolucion, RESIDENTE_MOTIVO > @motivo, RESIDENTE_ACTA = @acta, RESIDENTE_NACTA = @nacta,
RESIDENTE_TACTA = @tacta WHERE RESIDENTE_ID = @id",
Connection);
/// <summary>

/// Id
SqlParameter pid = new SqlParameter("@id", SqlDbType.Int);
pid.Value = p[0];
Command.Parameters.Add(pid);

/// Aprobado
SqlParameter paprobado = new SqlParameter("@aprobado",
SqlDbType.Int);
paprobado.Value = p[1];
Command.Parameters.Add(paprobado);

/// Usuario
SqlParameter prusuario = new SqlParameter("@rusuario",
SqlDbType.VarChar);
prusuario.Value = p[2];
Command.Parameters.Add(prusuario);

/// NResolucion
SqlParameter pnresolucion = new SqlParameter
("@nresolucion", SqlDbType.VarChar);
pnresolucion.Value = p[3];
Command.Parameters.Add(pnresolucion);

/// LResolucion
SqlParameter plresolucion = new SqlParameter
("@lresolucion", SqlDbType.Int);
plresolucion.Value = p[4];
Command.Parameters.Add(plresolucion);

/// FResolucion
SqlParameter pfresolucion = new SqlParameter
("@fresolucion", SqlDbType.VarChar);
pfresolucion.Value = p[5];
Command.Parameters.Add(pfresolucion);

/// DResolucion
SqlParameter pdresolucion = new SqlParameter
("@dresolucion", SqlDbType.VarChar);
pdresolucion.Value = p[6];
Command.Parameters.Add(pdresolucion);

/// Motivo
SqlParameter pmotivo = new SqlParameter("@motivo",
SqlDbType.VarChar);
pmotivo.Value = p[7];
Command.Parameters.Add(pmotivo);

/// Acta
SqlParameter pacta = new SqlParameter("@acta",
SqlDbType.Image);
pacta.Value = p[8];
Command.Parameters.Add(pacta);

/// NActa
SqlParameter pnacta = new SqlParameter("@nacta",
SqlDbType.Int);
pnacta.Value = p[9];
Command.Parameters.Add(pnacta);

/// TActa
SqlParameter ptacta = new SqlParameter("@tacta",
SqlDbType.VarChar);
ptacta.Value = p[10];
Command.Parameters.Add(ptacta);

/// <summary>
/// Open the connection in order to retrieve the record
</summary>
Connection.Open();
/// <summary>
/// The SQL statement is executed. ExecuteNonQuery is used
since no records
/// will be returned. </summary>
Command.ExecuteNonQuery();
/// <summary>
/// The connection is closed </summary>
Connection.Close();*/
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida