Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

UDF . Es soportado?

Estas en el tema de UDF . Es soportado? en el foro de SQL Server en Foros del Web. Hola, ¿Alguien sabe si MS SQLServer soporta UDF "externas"? Es decir, se que soporta funciones de tres tipos, todas ellas escritas en T-SQL, sin embargo ...
  #1 (permalink)  
Antiguo 28/11/2005, 13:53
Avatar de claray  
Fecha de Ingreso: agosto-2004
Ubicación: ahora... en Caracas
Mensajes: 345
Antigüedad: 19 años, 8 meses
Puntos: 0
Exclamación UDF . Es soportado?

Hola,

¿Alguien sabe si MS SQLServer soporta UDF "externas"?

Es decir, se que soporta funciones de tres tipos, todas ellas escritas en T-SQL, sin embargo no he encontrado ninguna referencia a la utilizacion de funciones externas creadas en DLLs en algun lenguaje (por ejemplo C o Pascal o lo que sea).

Algunos manejadores las soportan con ciertas restricciones, pero, es posbile incoporar funciones externas en MS SQL Server?

Saludos y gracias de antemano...
__________________
:pirata: El arte de desarrollar es dejar que los otros lo hagan
  #2 (permalink)  
Antiguo 28/11/2005, 13:54
Avatar de claray  
Fecha de Ingreso: agosto-2004
Ubicación: ahora... en Caracas
Mensajes: 345
Antigüedad: 19 años, 8 meses
Puntos: 0
Me falto mencionar que lo necesito para SQL SERVER 8
__________________
:pirata: El arte de desarrollar es dejar que los otros lo hagan
  #3 (permalink)  
Antiguo 28/11/2005, 17:34
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
No te sé decir ese caso específico, pero con certeza te puedo asegurar que no puedes llamar UDFs sobre Linked Servers. Quizá el dato se sirva de pista.

SELECT * FROM server.db.dbo.udf('cosa') no funciona
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #4 (permalink)  
Antiguo 29/11/2005, 13:18
Avatar de claray  
Fecha de Ingreso: agosto-2004
Ubicación: ahora... en Caracas
Mensajes: 345
Antigüedad: 19 años, 8 meses
Puntos: 0
Bueno, gracias por el dato pero no, no se acerca a lo que necesito.

El punto es que necesito generar una función compilada que reciba los datos del SQL SERVER (piensa en datos que se encriptaran con un algoritmo en particular, aunque no se trata de este es algo similar) y se los devuelva al SQL Server convertidos...

por ejemplo:

UPDATE laTabla SET elCampo=RutinaExterna(otroCampo,AlgunoMas)

evidentemente, no me sirve que la rutina este en codigo en T-SQL por eficiencia y complejidad.

¿Alguna idea? ¿Alguien?

saludos,
__________________
:pirata: El arte de desarrollar es dejar que los otros lo hagan
  #5 (permalink)  
Antiguo 30/11/2005, 08:47
Avatar de claray  
Fecha de Ingreso: agosto-2004
Ubicación: ahora... en Caracas
Mensajes: 345
Antigüedad: 19 años, 8 meses
Puntos: 0
AL fin la solucion

Ok, bueno, evidentemente no me quede unicamente esperando una respuesta, investigando profundamente, encontre que el problema era que estaba buscando erroneamente.

Para SQL Server, por definición, las funciones externas (conocidas como UDF en otros manejadores) no se denominan UDF sino "extended stored procedures", por lo que mediante este concepto se pueden agregar las funcionalidades necesarias.

Si alguien necesita agregar una funcionalidad nueva o distinta en SQL Server, lo puede hacer mediante una DLL (que cumpla con los estandares, obviamente) e incorporarla a las EXTENDED STORED PROCEDURES.

saludos y gracias de todas maneras...
__________________
:pirata: El arte de desarrollar es dejar que los otros lo hagan
  #6 (permalink)  
Antiguo 30/11/2005, 12:15
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Solo ten en cuenta que el comportamiento es el de un stored procedure, y no el de una función. Para que lo consideres en tu diseño.

Bueno que has encontrado la solución
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:23.