Integridad de datos (Imagen)

07/10/2005 - 22:36 por Jaime Landazuri | Informe spam
Hola a todos

Necesito saber por que cuando inserto una imagen en sql server 2000, no me
coloca la cantidad de bytes correspondientes a la imagen sino "menos".
Utilizo la siguiente sentencia:
string curFileName "c:"+"\\"+"JAIME"+"\\"+"otros"+"\\"+"AmigaCuba"+"\\"+"pictures"+"\\"+"aguaca
te.jpg";

FileStream stream = new
FileStream(curFileName,FileMode.Open,FileAccess.Read);

byte[] buffer = new byte[stream.Length];

stream.Read(buffer, 0, (int)stream.Length);

stream.Close();

Asi es como obtengo el array de bytes de la imagen.

param[10]= new SqlParameter("@PER_IMAGEN",SqlDbType.Image,16);

param[10].Value= foto;

asi es como cargo el parametro.



SqlHelper.ExecuteNonQuery(ConexionDB.sqlConn,CommandType.StoredProcedure,"AD
D_PERSONA",param);

hasta antes de esta sentencia la cantidad de bytes de la imagen es la
correcta.

Utilizando el mismo procedimiento, pero sin el sql Helper, me funciona bien,
osea utilizando

Tambien quiero saber como retornar un valor de un metodo int,

utlizo la siguiente sentencia para obtener el valor de retorno del
procedimiento almacenado(BDD)

System.Data.SqlClient.SqlParameter param cmd.Parameters.Add("@PER_SECUENCIA_SALIDA", SqlDbType.Int);

param.Direction = ParameterDirection.ReturnValue;

Preguntas similare

Leer las respuestas

#1 Misael Monterroca
08/10/2005 - 15:07 | Informe spam
Quitale el tamaño del tipo de dato

param[10]= new SqlParameter("@PER_IMAGEN",SqlDbType.Image,16);

quita el 16
Saludos!
Misael Monterroca
Respuesta Responder a este mensaje
#2 Octavio Hernandez
08/10/2005 - 20:11 | Informe spam
Jaime,

a) Echa un vistazo a esta referencia de MS sobre cómo leer y escribir
imágenes en SQL Server:

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

b) Para obtener los valores de los parámetros de salida de un procedimiento
almacenado, utiliza la misma notación que cuando le asignas valor a los
parámetros de entrada:

int resultado = (int) param[5].Value;

Es importante la conversión de tipo (cast), porque la propiedad Value es
estáticamente de tipo System.Object.

Slds - Octavio

"Jaime Landazuri" escribió en el mensaje
news:%
Hola a todos

Necesito saber por que cuando inserto una imagen en sql server 2000, no me
coloca la cantidad de bytes correspondientes a la imagen sino "menos".
Utilizo la siguiente sentencia:
string curFileName > "c:"+"\\"+"JAIME"+"\\"+"otros"+"\\"+"AmigaCuba"+"\\"+"pictures"+"\\"+"aguaca
te.jpg";

FileStream stream = new
FileStream(curFileName,FileMode.Open,FileAccess.Read);

byte[] buffer = new byte[stream.Length];

stream.Read(buffer, 0, (int)stream.Length);

stream.Close();

Asi es como obtengo el array de bytes de la imagen.

param[10]= new SqlParameter("@PER_IMAGEN",SqlDbType.Image,16);

param[10].Value= foto;

asi es como cargo el parametro.



SqlHelper.ExecuteNonQuery(ConexionDB.sqlConn,CommandType.StoredProcedure,"AD
D_PERSONA",param);

hasta antes de esta sentencia la cantidad de bytes de la imagen es la
correcta.

Utilizando el mismo procedimiento, pero sin el sql Helper, me funciona
bien,
osea utilizando

Tambien quiero saber como retornar un valor de un metodo int,

utlizo la siguiente sentencia para obtener el valor de retorno del
procedimiento almacenado(BDD)

System.Data.SqlClient.SqlParameter param > cmd.Parameters.Add("@PER_SECUENCIA_SALIDA", SqlDbType.Int);

param.Direction = ParameterDirection.ReturnValue;




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida