FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
UDF no funciona en xp
Buenos día amigos foreros, hace algún tiempo tomé el código de Atexto y lo puse en una dll para utilizarla en una base de datos firebird.
Me funcionó sin ningún problema, pero hace poco la quise utilizar nuevamente y me muestra el siguiente error:
Luego volví a compilar el proyecto utilizado lazarus y todo me fue perfectamente bien, hasta que monté la udf en un equipo con XP. la udf la compilé en un equipo con win7 utilizando Delphi y Lazarus, en ambos casos me funcionó bien. Mi pregunta es qué estoy haciendo mal? El código en Delphi es el siguiente:
El proyecto
Gracias por vuestro tiempo GustavoCruz |
#2
|
||||
|
||||
Bueno, ahí lo que dice es que no está declarada esa UDF en la base de datos, debes ejecutar algo parecido a lo siguiente en tu BD:
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#3
|
||||
|
||||
Mi amigo Jhonny, he declarado la udf en firebird y no me funciona:
estoy utilizado Firebird 2.1 y el IBExpert Versión 2011.04.03 y me sigue apareciendo el mismo problema Gracias por tu respuesta GustavoCruz |
#4
|
||||
|
||||
¿Ya intentaste reiniciar el servicio?
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#5
|
||||
|
||||
Efectivamente,
Reinicié el servicio, instalé y desintalé firebird 2.1 y 2.5 para ver si era cuestión de versiones y nada. por lo que supese que debía de tratarse del SO ya que en 7 me funciona perfectamente, pero también pienso que eso no tiene nada que ver..., actualmente tengo instalado firebird 2.5 Gracias por tu tiempo Gustvo Cruz |
#6
|
||||
|
||||
Cada vez que instalas una versión volverás a dar de alta la udf, se supone
|
#7
|
||||
|
||||
Efectivamente mi amigo Casimiro Notevi.
Me gustaría que me colaboren con esto, tomen el código que puse y compilen ustedes, quizas funcione... Gracias por vuestra ayuda |
#8
|
||||
|
||||
Hola. Varias cosas que yo tendría en cuenta:
1) Yo pondría en los uses a la unit ShareMem
2) El fichero g_udf.dll debe estar en la carpeta UDF de Firebird 3) Borra la definición de la función de tu base de datos y vuelve a darla de alta tal como sugiere jhonny
__________________
Progress Openedge https://abevoelker.com/progress_open...dered_harmful/ Delphi forever... |
#9
|
||||
|
||||
Hola amigo defcon1_es
esto es lo que me muestra ahora Invalid data type, length, or value. function A_LETRAS could not be matched. la declaración en la base de datos es la siguiente:
Ya no se qué hacer... Gracias por vuestro tiempo |
#10
|
||||
|
||||
Por qué no nos escribes paso a paso, exactamente, todo lo que haces. Ya sabes, 4 ojos ven más que 2. Y en este caso 400 ojos ven más que 2
|
#11
|
||||
|
||||
Te sería mucho más cómodo traducir este código Delphi a Transact-SQL y así ponerlo en un procedimiento almacenado.
De esta forma no te tendrás que preocupar de UDF's, lo tendrás siempre disponible en tu base de datos. No te tendrás que preocupar de distribuirlo en nuevas instalaciones, de si tu servidor corre en Windows o en Linux, de si será compatible con nuevas versiones de Firebird, etc. ... ... Claro que esa traducción no es trivial, pero las ventajas sobre una UDF valen la pena.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#12
|
||||
|
||||
Bueno listo...
1. Una vez compilado la udf. procedo a copiarla al directorio de UDF que está en la carpeta de Firebird. 2. paso siguiente reinicio el equipo; aunque con reiniciar el servicio es suficiente 3. inicio el IBExpert y borro la declaración previa de la udf 4. doy nuevamente de alta la función. 5. realizo una consulta cualquiera y no me funciona. me muestra los errores que ya he expuesto. Nota: No entiendo por qué me funciona en win7 y no así en win xp sp3 si fuese problema de la udf o del código no corriera en win7.... Gracias por vuestro tiempo |
#13
|
|||
|
|||
Cita:
Despues de analizar me puse manos a la obra y realizar la traduccion para Firebird... La estuve probando (Firebird 2.5) y al parecer funciona bien, eso si que hay que seguir chequeando...Les dejo el script para la creacion de los procedimientos almacenados. Cita:
|
#14
|
|||
|
|||
#15
|
||||
|
||||
Interesante, hacerlo en la propia base de datos.
Gracias por el aporte. |
#16
|
||||
|
||||
Gracias por traducirlo a Firebird y compartirlo.
Para quienes no hayan usado procedimientos almacenados, la forma de utilizarlos para reemplazar una UDF es llamarlos en una subconsulta. Por ejemplo, si tenemos la tabla COMPRAS con el campo TOTAL y queremos una consulta con ese campo tanto en valor como en palabras : select TOTAL, (select WORD from NUMBER_EXECUTE(TOTAL)) from COMPRAS Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
funciona bien en windows 7 64b pero en XP no funciona | ASAPLTDA | Varios | 5 | 06-05-2011 16:24:50 |
IDE funciona mal | dfarias | Varios | 2 | 10-02-2009 11:04:26 |
No funciona PHP | silviodp | PHP | 6 | 07-06-2008 21:51:29 |
¿Así funciona el BETWEEN? | Faust | Firebird e Interbase | 4 | 13-05-2008 01:58:40 |
like no funciona ! | dmasson | Conexión con bases de datos | 9 | 23-03-2004 14:10:50 |
|