Problemas Borrar registro

28/03/2007 - 11:32 por Javier | Informe spam
Hola. Tengo una tabla con un campo image, donde guardo un array de bytes (el
contenido de un fichero visio). La BD es sqlserver 2005. El problema es que
cuando intento borrar un registro me da problemas de tiempo de espera y salta
una excepción. Solo ocurre en esta tabla que tiene el campo imagen, en las
demás borro bien. Por eso me extraña mucho lo que me está pasando. Estoy
programando en .net c#. ¿sabéis si tengo que activar algún tipo de permiso en
sqlserver? Gracias y un saludo.

string strCadenaSelect = "delete FROM Esquemas where ID_ESQUEMA = "+
PrmIntID_ESQUEMA ;
string strCadenaConexion = "micadenaconexion";

SqlConnection cnn = null;
SqlCommand cmd = null;
try
{
cnn = new SqlConnection(strCadenaConexion);
cmd = new SqlCommand(strCadenaSelect, cnn);
cmd.CommandType = CommandType.Text;

cnn.Open();
cmd.ExecuteScalar();
cnn.Close ();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}

Preguntas similare

Leer las respuestas

#1 Jose Mariano Alvarez
28/03/2007 - 14:11 | Informe spam
In article ,
says...
Hola. Tengo una tabla con un campo image, donde guardo un array de bytes (el
contenido de un fichero visio). La BD es sqlserver 2005. El problema es que
cuando intento borrar un registro me da problemas de tiempo de espera y salta
una excepción. Solo ocurre en esta tabla que tiene el campo imagen, en las
demás borro bien. Por eso me extraña mucho lo que me está pasando. Estoy
programando en .net c#. ¿sabéis si tengo que activar algún tipo de permiso en
sqlserver? Gracias y un saludo.

string strCadenaSelect = "delete FROM Esquemas where ID_ESQUEMA = "+
PrmIntID_ESQUEMA ;
string strCadenaConexion = "micadenaconexion";

SqlConnection cnn = null;
SqlCommand cmd = null;
try
{
cnn = new SqlConnection(strCadenaConexion);
cmd = new SqlCommand(strCadenaSelect, cnn);
cmd.CommandType = CommandType.Text;

cnn.Open();
cmd.ExecuteScalar();
cnn.Close ();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}






El tipo de dato adecuado en 2005 deberia ser varbinary(max).
Sin embargo no creo que el motivo sea el image sino algun otro bloqueo.
Sugiero que aumentes el timeout de ADO.NET hasta que encuentres el
motivo por el cual esta tardando.
Si tienes integridad referencial sugiero que revises en el management
studio el plan de ejecucion del delete.



Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)


IMPORTANTE

Por favor traten de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el
problema también ayuda.
Respuesta Responder a este mensaje
#2 Javier Loria
28/03/2007 - 17:50 | Informe spam
Hola Javier:
Cual es el tipo de excepcion que salta?, Es una SQLException? Si es así
los errores vienen en la collección Errors.
Adicionalmente porque un ExecuteEscalar?, Deberia ser un
ExecuteNonQuery. ExecuteScalar es cuando devuelves un valor (la columna de
la primera fila), el ExecuteNonQuery solo el numero de filas afectadas.
Saludos,


Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


"Javier" wrote in message
news:
Hola. Tengo una tabla con un campo image, donde guardo un array de bytes
(el
contenido de un fichero visio). La BD es sqlserver 2005. El problema es
que
cuando intento borrar un registro me da problemas de tiempo de espera y
salta
una excepción. Solo ocurre en esta tabla que tiene el campo imagen, en las
demás borro bien. Por eso me extraña mucho lo que me está pasando. Estoy
programando en .net c#. ¿sabéis si tengo que activar algún tipo de permiso
en
sqlserver? Gracias y un saludo.

string strCadenaSelect = "delete FROM Esquemas where ID_ESQUEMA = "+
PrmIntID_ESQUEMA ;
string strCadenaConexion = "micadenaconexion";

SqlConnection cnn = null;
SqlCommand cmd = null;
try
{
cnn = new SqlConnection(strCadenaConexion);
cmd = new SqlCommand(strCadenaSelect, cnn);
cmd.CommandType = CommandType.Text;

cnn.Open();
cmd.ExecuteScalar();
cnn.Close ();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida