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 30-09-2011
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 296
Poder: 20
GustavoCruz Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 30-09-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cada vez que instalas una versión volverás a dar de alta la udf, se supone
Responder Con Cita
  #3  
Antiguo 30-09-2011
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 296
Poder: 20
GustavoCruz Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 30-09-2011
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 23
defcon1_es Va por buen camino
Hola. Varias cosas que yo tendría en cuenta:

1) Yo pondría en los uses a la unit ShareMem

Código Delphi [-]
unit Conversiones;  

interface  

uses Sharemem, ib_util, SysUtils, Classes;

Código Delphi [-]
library g_udf;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses
  Sharemem,
  SysUtils,
  Classes,
  Conversiones in 'Conversiones.pas',
  ib_util in 'ib_util.pas';

{$R *.res}
  exports    
    NumeroALetra;

begin

end.

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...
Responder Con Cita
  #5  
Antiguo 30-09-2011
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 296
Poder: 20
GustavoCruz Va por buen camino
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:

Código SQL [-]
DECLARE EXTERNAL FUNCTION A_LETRAS
    DOUBLE PRECISION,
    CSTRING(10)
RETURNS CSTRING(600) FREE_IT
ENTRY_POINT 'NumeroALetra' MODULE_NAME 'g_udf';

Ya no se qué hacer...

Gracias por vuestro tiempo
Responder Con Cita
  #6  
Antiguo 30-09-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
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
Responder Con Cita
  #7  
Antiguo 30-09-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
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).
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
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


La franja horaria es GMT +2. Ahora son las 04:03:23.


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