Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/05/2008, 08:24
ivanargulo
 
Fecha de Ingreso: marzo-2008
Mensajes: 12
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Encriptación SQL Server y ASP

Gracias por tu interés, Myakire.

- Desde el analizador de consultas, los resultados son correctos (por eso sospecho que el fallo está en el código ASP).

- Sólo lo he probado en un servidor Windows con ASP y SQL Server (Express, por si nos puede ser útil) instalado.

- En principio sólo devolverá un registro, aunque no descarto la posibilidad de que en el futuro devuelva más. He probado con parámetros de salida y el resultado es el mismo: campos sin encriptar correctos, campos encriptados vacíos.

Aquí está el código de las funciones:

Código:
public sub CrearSP(byRef adocmd, nombreSP)

	set adocmd = Server.CreateObject("ADODB.Command")

	'Procedimiento Almacenado
	adocmd.CommandText = nombreSP
	
	adocmd.ActiveConnection = SGM_Conexion_x
	adocmd.CommandType = adCmdStoredProc
	
	'HayErrores()
	
end sub

public sub ParamIN(byRef sp, nombre, tipo, tam, valor)

	On Error Resume Next
	
	if tipo = adVarchar then valor = Left(valor, tam)

	sp.Parameters.Append sp.CreateParameter(nombre, tipo, adParamInput, tam, valor)
	
	if Err.Number <> 0 then
		Response.Write "Error en par&aacute;metro: " & nombre
	end if
	
	On Error GoTo 0

end sub

public sub ParamOUT(byRef sp, nombre, tipo, tam)

	sp.Parameters.Append sp.CreateParameter(nombre, tipo, adParamOutput, tam)

end sub

public sub EjecutarSP(byref RecSet, byRef sp)

	On Error Resume Next
	
	set RecSet = sp.Execute
	
	if Err.Number <> 0 then 
		Response.Redirect "error.asp"
	end if
	
end sub
No da ningún error, simplemente aparece el campo vacío.

He probado pasando como parámetros adWVarChar en lugar de adVarChar, porque el procedimiento almacenado para desencriptar utiliza el tipo nvarchar.

* Nota: También he probado ejecutando la SQL que llama al procedimiento almacenado directamente, la misma que genera el analizador de consultas, y el resultado es el mismo: vacío.

Muchas gracias por tu colaboración.