Problema para guardar array de bytes en SQL server

Christopher
12 de Enero del 2005
Hola, estoy desarrollando una aplicacion en VB6 y SQLserver 2000.
El asunto es que en al programa tengo un arreglo de bytes que quiero almacenarlos en la BD. Para esto en la BD hay un campo de tipo \\'varbinary \\' que almacenara el arreglo.
He tratado de varias formas y no he podido hacerlo. Una de la maneras es la siguiente:

Implemente un procedimiento almacenado la BD para hacer un insert en la tabla. Este procedimiento recibe los parametros desde la aplicacion. El procedimiento es el siguiente:

CREATE PROCEDURE [insertHuella]
(@rut_alumno_1 [varchar](10),
@huella_2 [varbinary](1542),
@conflictiva_3 [bit])

AS INSERT INTO [DCSC].[dbo].[alumno]
( [rut_alumno],
[huella],
[conflictiva])

VALUES
( @rut_alumno_1,
@huella_2,
@conflictiva_3)
GO

El codigo de la aplicacion que llama al procedimiento para realizar el insert es el siguiente (estoy usando ADODB):

Dim cmd As ADODB.Command
Set cmd = New ADODB.Command

cmd.CommandType = adCmdStoredProc
cmd.ActiveConnection = conexion \\' conexion activa y sin problemas
cmd.CommandText = \"insertHuella\" \\' es el nombre del procedimiento

\\'Parametro: rut_alumno_1 , que es un string de largo 10
cmd.Parameters.Append cmd.CreateParameter(\"rut_alumno_1\", adVarChar, adParamInput, 10, rut)

\\'Segundo parametro que es boolean
cmd.Parameters.Append cmd.CreateParameter(\"conflictiva_3\", adBoolean, adParamInput, , 0)

\\'y por ultimo agrego el parametro que corresponde a la un arreglo de bytes y lo guardo en un campo varbinary de la bd
\\'El arreglo esta definido como: dim huella(1542) as Byte
cmd.Parameters.Append cmd.CreateParameter(\"huella_2\", adVarBinary, adParamInput, 1542)
cmd.Parameters(\"huella_2\").Attributes = adFldLong
cmd.Parameters(\"huella_2\").AppendChunk huella
cmd.Execute


Ojala alguien me puede decir que esta mal, o de que manera guardar el arreglo de bytes en la BD.
Y tambien despues como recuperar el arreglo de la BD que tampoco se hacerlo.

Ok, chao gracias.
Christopher.

Mario Arias
12 de Enero del 2005
Debes guardarlo en un campo IMAGE, que estan iseñados para este fin, lamentablemente no soy experto en VB sino en C#, donde se que funciona perfectamente, espero te pueda servir mi ayuda