elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Como creo mi propia UDF?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como creo mi propia UDF?  (Leído 7,610 veces)
Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Como creo mi propia UDF?
« en: 21 Marzo 2010, 02:02 am »

Hola gente.
Recien leyendo un libro de MySQL (La Biblia de MySQL), leí que se pueden crear librerias para que MySQL las utilice luego(con las funciones que traen dentro las librerias)

Viendo lo que decía el libro, esas UDF pueden ser simples o "compuestas".. Diagamos que, estan las que se aplican sobre un conjunto de datos y otras que aplica sobre 1 solo dato.

Me interesaría ir probando sobre la mas sencilla, supongo que será la STANDART (aplica a 1 solo dato)

Tambien leí en el libro que en sí, lo que hay que crear, es una DLL.... Y no es necesario que sea C++ o C el lenguaje a generarlas, sino que tiene que ser cualquier lenguaje que pueda generar una DLL...

Eso es verdad? Puedo hacer una DLL para MySQL con mi VB.NET (desde él si se pueden hacer dll)

Luego que me respondan esto, seguiré con algunas cuantas otras preguntas


En línea

Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Como creo mi propia UDF?
« Respuesta #1 en: 21 Marzo 2010, 02:13 am »

Les comento algo mas:
Acabo de entrar al Visual Studio, y creé por primera vez una DLL que al ejecutar su metodo, me devolvía el valor: Broda Noel
Probé ejecutarlo con otra aplicacion hecha en vb.net y devolvió el resultado PERFECTAMENTE..

Así que supongo que SI puedo hacer mi propia UDF con VB.NET.... :)

Alguien me da una mano?
Supongamos que quiero hacer mi propio UDT que haciendo:
select noel(numero);
siendo "numero" un NUMERO escrito con numeros (que quilomboo)
Por ejemplo:
Select noel(9);
y que el resultado devuelto sea:
NUEVE

Yo hago la logica en VB.net, pero, para poder pasar los datos por parametro, simplemente pongo los datos que entran por parametro en el metodo "noel()" de la dll: funcionnoel.dll?

Y que el return devuelva lo que tiene que devolver...

Y luego agregarla a MySQL? como? Donde tengo que colocar (en que directorio del pc) a la dll nueva? y como agrego la funcion a mi MySQL?



:)


En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Como creo mi propia UDF?
« Respuesta #2 en: 21 Marzo 2010, 05:08 am »

Las UDF se hacen en puro lenguaje C generico nino  :rolleyes:

Se integran al motor mediante otra linea de comandos dentro del motor para validar dichas funciones como globales  ;)

Pero antes de aventurar con UDF deberias conocer y manejar el lenguaje C para hacer una de estas. No te compliques sobremanera, se puede hacer cosas similares con procedimientos almacenados o funciones, que no seran globales bueno.. es su unico limite, pero no es algo que yo consideraria muy de uso sino fuera a crear una aplicacion que maneje MySQL para algo y para relacionar o hacer funcional dicha aplicacion con MySQL crearia par de UDF
En línea

Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Como creo mi propia UDF?
« Respuesta #3 en: 21 Marzo 2010, 05:24 am »

Bien....
Veré que puedo hacer.

Pero te juro que mañana o pasado mañana, verás un post mio aqui mismo con los links de descarga del proyecto en vb.net, la dll, y mi libreria en vb.net funcionando :)
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Como creo mi propia UDF?
« Respuesta #4 en: 21 Marzo 2010, 05:31 am »

VB.NET no es C  es Visual Basic No????

Las UDF se desarrollan en puro C generico, deberias primeramente ver tutos de C mejor y luego ejemplos online de codigo fuente de UDF...  :P
En línea

Eternal Idol
Kernel coder
Colaborador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Como creo mi propia UDF?
« Respuesta #5 en: 21 Marzo 2010, 09:56 am »

¿User-defined function?

http://en.wikipedia.org/wiki/User_Defined_Function

"Some database management systems allow the creation of user defined functions in languages other than SQL. Microsoft SQL Server, for example, allows the user to use .NET languages including C# for this purpose. DB2 and Oracle support user-defined functions written in C or Java programming languages."

http://dev.mysql.com/doc/refman/5.1/en/adding-functions.html
http://dev.mysql.com/doc/refman/5.1/en/create-function-udf.html

"For the UDF mechanism to work, functions must be written in C or C++ (or another language that can use C calling conventions), your operating system must support dynamic loading and you must have compiled mysqld dynamically (not statically)."
« Última modificación: 21 Marzo 2010, 09:59 am por Eternal Idol » En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Como creo mi propia UDF?
« Respuesta #6 en: 21 Marzo 2010, 17:06 pm »

Pero.. En el libro de La Biblia de MySQL, leo que son dll las que hay que crear, y "importarlas" desde MYSQL.

Supongo que el resultado de una DLL, es lo mismo si la creo con C++, C o vb.net.. o me equivoco?
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Como creo mi propia UDF?
« Respuesta #7 en: 21 Marzo 2010, 17:11 pm »

Citar
Supongo que el resultado de una DLL, es lo mismo si la creo con C++, C o vb.net.. o me equivoco?

En ese punto yo no te puedo guiar  :xD  tendrias que preguntarle a alguien con el nivel correspondiente y suficiente como Eternal Idol.

Porque manejo en mayor extension MySQL bajo plataformas Unix/Linux y hasta lo que he visto y leido las UDFs se crean en C pero bajo Windows como desarrollo no se como vaya el asunto, pero aparentemente continua siendo bajo C/C++ segun esta web:

http://rpbouman.blogspot.com/2007/09/creating-mysql-udfs-with-microsoft.html
En línea

Eternal Idol
Kernel coder
Colaborador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Como creo mi propia UDF?
« Respuesta #8 en: 21 Marzo 2010, 18:25 pm »

Para MySQL no es lo mismo si la DLL no exporta las funciones y usa la convencion de llamada de C (cosa que no se si podes hacer en .NET, si lo podes hacer en assembly por ejemplo).

Aca tenes respuesta a algunas de las preguntas que hiciste hasta ahora:
http://www.codeguru.com/cpp/data/mfc_database/misc/article.php/c12615
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Como creo mi propia UDF?
« Respuesta #9 en: 21 Marzo 2010, 18:32 pm »

Perfecto.
Muchas gracias a los 2.

No tengo tampoco porque renegar con UDF... Simplemente estaba leyendo un libro y haciendo el 100% de la parte practica del libro, y no quería dejar de probar los ejemplos de UDF.. Pero bue...

Tendré que aprender a programar C++
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como veo el standardoutput de la CMD en la própia CMD?
.NET (C#, VB.NET, ASP)
Eleкtro 2 2,248 Último mensaje 11 Enero 2013, 15:27 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines