Problema para guardar array de bytes en SQL server
Publicado por Christopher (6 intervenciones) el 21/12/2004 18:23:30
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.
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.
Valora esta pregunta


0