Objeto Ole....

13/06/2007 - 16:39 por Juan Bonilla | Informe spam
Ante todo gracias por sus repuestas...
les explico..
Existe una DLL con una rutina de encriptacion y desencriptacion que por
ahora ha estado corriendo en el lado de la aplicacion cliente, pero ahora se
quiere que corra dentro de los procedimientos almacenados de SQL...
Ya lo hize como una funcion de SQL, pero, es demasiado lento, la media es
como de 6000 registros en 20 seg.
Pienso q el problema es por q la funcion crea y destruye el objeto OLE cada
vez que se procesa un registro, pero no se como puedo hacer ya sea para que
la definicion del objeto sea global, mejor dicho el objeto este creado
residente.
Este es el codigo de muestra..

CREATE FUNCTION DesEnc (@nota varchar(16))
RETURNS char(3) AS
BEGIN
DECLARE @object int, @hr int
DECLARE @vnota varchar(16)
EXEC @hr = sp_OACreate 'seriedll.serie', @object OUT
IF (@hr = 0)
BEGIN
EXEC @hr = sp_OAMethod @object, 'desencripta_v', @vnota out , @nota out
if (@hr <> 0)
set @vnota ='E1'
else
exec sp_OADestroy @object
end
else
Set @vnota ='E2'
Return @vnota
END

Preguntas similare

Leer las respuestas

#1 Maxi
13/06/2007 - 21:57 | Informe spam
Hola, por lo general sera lento asi :( no entiendo porque no lo dejas en la
aplicacion que a mi juicio es mucho mejor que dentro del SQL a menos que
uses 2005 donde este ya incluye muy buenas tecnicas de cifrado


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Juan Bonilla" escribió en el mensaje
news:
Ante todo gracias por sus repuestas...
les explico..
Existe una DLL con una rutina de encriptacion y desencriptacion que por
ahora ha estado corriendo en el lado de la aplicacion cliente, pero ahora
se quiere que corra dentro de los procedimientos almacenados de SQL...
Ya lo hize como una funcion de SQL, pero, es demasiado lento, la media es
como de 6000 registros en 20 seg.
Pienso q el problema es por q la funcion crea y destruye el objeto OLE
cada vez que se procesa un registro, pero no se como puedo hacer ya sea
para que la definicion del objeto sea global, mejor dicho el objeto este
creado residente.
Este es el codigo de muestra..

CREATE FUNCTION DesEnc (@nota varchar(16))
RETURNS char(3) AS
BEGIN
DECLARE @object int, @hr int
DECLARE @vnota varchar(16)
EXEC @hr = sp_OACreate 'seriedll.serie', @object OUT
IF (@hr = 0)
BEGIN
EXEC @hr = sp_OAMethod @object, 'desencripta_v', @vnota out , @nota out
if (@hr <> 0)
set @vnota ='E1'
else
exec sp_OADestroy @object
end
else
Set @vnota ='E2'
Return @vnota
END

Respuesta Responder a este mensaje
#2 Juan Bonilla
13/06/2007 - 22:47 | Informe spam
ya lo deje asi, pero de todos modos se necesitaban cambiar de una sola vez
mas de 100,000 registros, asi q siempre use la rutinita que les mostre..

gracias...

"Maxi" escribió en el mensaje
news:
Hola, por lo general sera lento asi :( no entiendo porque no lo dejas en
la aplicacion que a mi juicio es mucho mejor que dentro del SQL a menos
que uses 2005 donde este ya incluye muy buenas tecnicas de cifrado


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Juan Bonilla" escribió en el mensaje
news:
Ante todo gracias por sus repuestas...
les explico..
Existe una DLL con una rutina de encriptacion y desencriptacion que por
ahora ha estado corriendo en el lado de la aplicacion cliente, pero ahora
se quiere que corra dentro de los procedimientos almacenados de SQL...
Ya lo hize como una funcion de SQL, pero, es demasiado lento, la media es
como de 6000 registros en 20 seg.
Pienso q el problema es por q la funcion crea y destruye el objeto OLE
cada vez que se procesa un registro, pero no se como puedo hacer ya sea
para que la definicion del objeto sea global, mejor dicho el objeto este
creado residente.
Este es el codigo de muestra..

CREATE FUNCTION DesEnc (@nota varchar(16))
RETURNS char(3) AS
BEGIN
DECLARE @object int, @hr int
DECLARE @vnota varchar(16)
EXEC @hr = sp_OACreate 'seriedll.serie', @object OUT
IF (@hr = 0)
BEGIN
EXEC @hr = sp_OAMethod @object, 'desencripta_v', @vnota out , @nota out
if (@hr <> 0)
set @vnota ='E1'
else
exec sp_OADestroy @object
end
else
Set @vnota ='E2'
Return @vnota
END





Respuesta Responder a este mensaje
#3 Miguel Egea
14/06/2007 - 18:17 | Informe spam
efecitvamente la creación y destrucción 100000 veces de los objetos no será
una buena idea con seguridad, yo probaría creando un sp, y reusando el mismo
ojbeto para codificar todos los textos.


Saludos Cordiales
Miguel Egea Gómez
http://blogs.solidq.com/ES/megea/default.aspx
http://www.portalsql.com
Solid Quality Mentors

"Juan Bonilla" wrote in message
news:
ya lo deje asi, pero de todos modos se necesitaban cambiar de una sola vez
mas de 100,000 registros, asi q siempre use la rutinita que les mostre..

gracias...

"Maxi" escribió en el mensaje
news:
Hola, por lo general sera lento asi :( no entiendo porque no lo dejas en
la aplicacion que a mi juicio es mucho mejor que dentro del SQL a menos
que uses 2005 donde este ya incluye muy buenas tecnicas de cifrado


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Juan Bonilla" escribió en el mensaje
news:
Ante todo gracias por sus repuestas...
les explico..
Existe una DLL con una rutina de encriptacion y desencriptacion que por
ahora ha estado corriendo en el lado de la aplicacion cliente, pero
ahora se quiere que corra dentro de los procedimientos almacenados de
SQL...
Ya lo hize como una funcion de SQL, pero, es demasiado lento, la media
es como de 6000 registros en 20 seg.
Pienso q el problema es por q la funcion crea y destruye el objeto OLE
cada vez que se procesa un registro, pero no se como puedo hacer ya sea
para que la definicion del objeto sea global, mejor dicho el objeto este
creado residente.
Este es el codigo de muestra..

CREATE FUNCTION DesEnc (@nota varchar(16))
RETURNS char(3) AS
BEGIN
DECLARE @object int, @hr int
DECLARE @vnota varchar(16)
EXEC @hr = sp_OACreate 'seriedll.serie', @object OUT
IF (@hr = 0)
BEGIN
EXEC @hr = sp_OAMethod @object, 'desencripta_v', @vnota out , @nota out
if (@hr <> 0)
set @vnota ='E1'
else
exec sp_OADestroy @object
end
else
Set @vnota ='E2'
Return @vnota
END












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