Uso de sp_OACreate

19/04/2006 - 02:38 por Isaias | Informe spam
Tengo una DLL que voy a utilizar para ENCRYPTAR información.

1.- Registre mi DLL con:
Regsvr32 \WINNT\system32\Encript.dll


2.- Ejecuto esta instruccion en mi Query Analyzer

DECLARE @retVal INT
DECLARE @comHandle INT
DECLARE @errorSource VARCHAR(8000)
DECLARE @errorDescription VARCHAR(8000)
DECLARE @retString VARCHAR(100)

EXEC @retVal = sp_OACreate 'Encript.CEncript', @comHandle OUTPUT
IF (@retVal <> 0)
BEGIN
select '1'
EXEC sp_OAGetErrorInfo @comHandle, @errorSource OUTPUT, @errorDescription
OUTPUT
SELECT [Error Source] = @errorSource, [Description] = @errorDescription
RETURN
END

/*
EXEC @retVal = sp_OAMethod @comHandle, 'encriptar', @retString OUTPUT
IF (@retVal <> 0)
BEGIN
select '99'
EXEC sp_OAGetErrorInfo @comHandle, @errorSource OUTPUT, @errorDescription
OUTPUT
SELECT [Error Source] = @errorSource, [Description] = @errorDescription
RETURN
END


SELECT @retString
*/

EXEC @retVal = sp_OAMethod @comHandle, 'encriptar', @retString OUTPUT ,
@param='TestValue'
IF (@retVal <> 0)
BEGIN
select @retVal, @retString
EXEC sp_OAGetErrorInfo @comHandle, @errorSource OUTPUT, @errorDescription
OUTPUT
SELECT [Error Source] = @errorSource, [Description] = @errorDescription
RETURN
END

SELECT @retString

EXEC sp_OADestroy @comHandle

3.- Recibo este mensaje de error:

ODSOLE Extended Procedure Unknown name.

¿Alguna recomendacion?


Saludos
IIslas
 

Leer las respuestas

#1 Miguel Egea
19/04/2006 - 10:30 | Informe spam
Hola Isaías, sí, una recomendación, olvidate de objetos com (supongo que el
problema será que tienes que registrar el componente en el server con
REGSRV32), pero en cualquier caso, creo que esto es bastante mejor.

http://www.codeproject.com/database/xp_md5.asp

Saludos
Miguel Egea
SQL Server MVP

"Isaias" escribió en el mensaje
news:
Tengo una DLL que voy a utilizar para ENCRYPTAR información.

1.- Registre mi DLL con:
Regsvr32 \WINNT\system32\Encript.dll


2.- Ejecuto esta instruccion en mi Query Analyzer

DECLARE @retVal INT
DECLARE @comHandle INT
DECLARE @errorSource VARCHAR(8000)
DECLARE @errorDescription VARCHAR(8000)
DECLARE @retString VARCHAR(100)

EXEC @retVal = sp_OACreate 'Encript.CEncript', @comHandle OUTPUT
IF (@retVal <> 0)
BEGIN
select '1'
EXEC sp_OAGetErrorInfo @comHandle, @errorSource OUTPUT, @errorDescription
OUTPUT
SELECT [Error Source] = @errorSource, [Description] = @errorDescription
RETURN
END

/*
EXEC @retVal = sp_OAMethod @comHandle, 'encriptar', @retString OUTPUT
IF (@retVal <> 0)
BEGIN
select '99'
EXEC sp_OAGetErrorInfo @comHandle, @errorSource OUTPUT, @errorDescription
OUTPUT
SELECT [Error Source] = @errorSource, [Description] = @errorDescription
RETURN
END


SELECT @retString
*/

EXEC @retVal = sp_OAMethod @comHandle, 'encriptar', @retString OUTPUT ,
@param='TestValue'
IF (@retVal <> 0)
BEGIN
select @retVal, @retString
EXEC sp_OAGetErrorInfo @comHandle, @errorSource OUTPUT, @errorDescription
OUTPUT
SELECT [Error Source] = @errorSource, [Description] = @errorDescription
RETURN
END

SELECT @retString

EXEC sp_OADestroy @comHandle

3.- Recibo este mensaje de error:

ODSOLE Extended Procedure Unknown name.

¿Alguna recomendacion?


Saludos
IIslas

Preguntas similares