Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-09-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
Hola.

Ni idea sobre lo que te está fallando. Aunque para darte una alternativa, yo no utilizo UDF's, todas mis funciones las programo en procedimientos almacenados.

Por ejplo.

Código SQL [-]
SET TERM ^ ;

create procedure "asPrueba" (
    NUM numeric(15,2))
returns (
    RESULT numeric(15,2))
as
begin
  RESULT = NUM;
  suspend;
end
^

SET TERM ; ^

Ahora si quieres utilizar esta función en una consulta cualquiera, la puedes llamar como una subconsulta. Es decir:

Código SQL [-]
select  XXXX,
          (select RESULT from "asPrueba"(TABLA.CAMPO)) as IMPORTE
from TABLA

Gestionar tus funciones en procedimientos almacenados es más sencillo que hacerlo en librerías externas (es más sencillo hacer una instalación nueva, una restauración de un sistema, etc. ...). Y muy complejo tiene que ser el problema para que no lo puedas programar en T-SQL.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #2  
Antiguo 14-09-2010
ARPE ARPE is offline
Miembro
 
Registrado: oct 2003
Posts: 11
Poder: 0
ARPE Va por buen camino
Hola y gracias por la respuesta.
En lo posible uso procedimientos almacenados pero hay una serie de funciones en las que no me quedó otra (algunas de ellas por diversas circunstancias).
Estoy sobre un XP profesional SP3, ¿tiene algo que ver?, ¿hace falta alguna librería nueva para el fb2.5 (Microsoft.VC80.CRT.manifest, vccrt8_Win32.msi)?
Responder Con Cita
  #3  
Antiguo 14-09-2010
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Cuál es el error que te da?
- Error de permisos.
- Error de ejecución.
- No encuentra la UDF
- ...
Responder Con Cita
  #4  
Antiguo 14-09-2010
ARPE ARPE is offline
Miembro
 
Registrado: oct 2003
Posts: 11
Poder: 0
ARPE Va por buen camino
Hola, ¡qué fallo!, no le gusta a firebird da pocas pistas ¿verdad?

Desde una consulta me dice esto:
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
Error writing data to the connection.



Desde la aplicación con IBO me dice esto:
Fallo al abrir "Tabla".
Objeto: tbTabla
SELECT ALL Tabla.*
FROM Tabla

ISC ERROR CODE:335544741

ISC ERROR MESSAGE:

connection lost to database
Responder Con Cita
  #5  
Antiguo 15-09-2010
ARPE ARPE is offline
Miembro
 
Registrado: oct 2003
Posts: 11
Poder: 0
ARPE Va por buen camino
¡¡¡ Al fin !!!
Por lo visto FB 2.5 se ha vuelto más limpio y no le gusta "stdcall", las udf deben ser declaradas con "cdecl".
Opté por stdcall por esto:
"On Windows, the operating system APIs are stdcall and safecall. (Note that stdcall is more efficient than cdecl)."

Saludos
Responder Con Cita
  #6  
Antiguo 15-09-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.683
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Tengo entendido que con cdecl quien llama a la función es el encargado de "limpiar" la pila recogiendo los parámetros utilizados, en cambio, con stdcall el encargado de esta tarea es la propia función llamada.

Visto de esta forma, a mí me parece mejor cdecl.
Responder Con Cita
  #7  
Antiguo 15-09-2010
ARPE ARPE is offline
Miembro
 
Registrado: oct 2003
Posts: 11
Poder: 0
ARPE Va por buen camino
Por eso decía que es más limpio, o lo limpia él o desconecta el servidor (con dos c******).
Saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 19:12:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi