FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
|||
|
|||
UDF Firebird
Hola foreros.
Tras la necesidad de generar ciertos calculos dentro de una consulta y por la cantidad de datos para dicha operación, me he puesto a realizar una dll simple desde delphi 2005 la cual incluye unicamente la función que se debe ejecutar a la cual recibe los parametros por valor, pués bien hasta aqui todo bien, vinculo la dll y hago el llamamiento de la función desde firebird (ver 2.1) y en m equipo funciona perfecto!.... El problema radica cuando la instalo en otro equipo con winxp... instalo firebird 2.1 y en la carpeta de UDF agrego la dll que he creado que funciona en mi maquina, genero la consulta y me muestra el siguiente error: Cita:
|
#2
|
||||
|
||||
Aún no declaras la función en la base de datos
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#3
|
|||
|
|||
Creo que si la tengo declara es más ejecuto el siguiente script
Para más info anexo el codigo de la dll hecha en delphi:
|
#4
|
||||
|
||||
las udf deben declararse en cada maquina que las vaya a usar, no estoy seguro, pero creo que la udf va vinculada al motor y no a la base de datos.
__________________
mas confundido que Garavito el día del Niño. |
#5
|
||||
|
||||
El mensaje de error es, como dice Jhonny, de que no está declarada. Pero está claro que si ejecutas ese script entonces debería estarlo. Así que no se me ocurre donde está el error. Si en un Servidor Firebird te funciona, en otro también debería hacerlo.
Yo te sugiero de que no te compliques la vida con UDF's (que siempre es un problema a la hora de distribuir la aplicación) y que utilices un procedimiento almacenado. donde ahora tienes algo como : select idventa, ..., ecuacion(cantidad, bonif, costo, ...) from XXX ahora puedes hacer : select idventa, ..., (select RESULTADO from ECUACION(cantidad, bonif, costo, ...)) from XXX Ya solo tienes que programar el procedimiento almacenado ECUACION para que haga el mismo cálculo que tu Dll. NOTA: no te olvides poner un SUSPEND; al final del procedimiento almacenado. Ya que el resultado tiene que devolverse como un Dataset para que sea leído en la subconsulta donde se va a utilizar. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). Última edición por guillotmarc fecha: 09-03-2010 a las 19:49:19. |
#6
|
||||
|
||||
En ese caso, a mi se me acurre que si dicho Script esta siendo ejecutado con IBExpert, FlameRobin o similares... quizá lo estas ejecutando pero se te haya olvidado hacer el commit... bueno, es lo que se me ocurre de momento :S.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Firebird 1.5.4 funciona en Win Vista pero Firebird 2.0.1 NO !!! | Hagen | Firebird e Interbase | 5 | 19-05-2007 21:17:54 |
Firebird 1.5.3 Error:No puede ejecutarse Firebird Guardian xq ya hay una instancia | Delphius | Firebird e Interbase | 5 | 26-01-2007 10:19:20 |
alguien ha utilizado Firebird DDX provider? (conectarse con db en firebird!) | JuanErasmo | .NET | 1 | 04-11-2006 16:17:12 |
Firebird : Llamado para probadores de Firebird 2.0 | JOSEPE | Firebird e Interbase | 0 | 12-03-2005 20:33:18 |
Problemas Firebird Super Server 1.5 con RFunc Firebird v 1.0 | Prophoenix | Firebird e Interbase | 1 | 09-03-2004 11:40:48 |
|