Ver Mensaje Individual
  #3  
Antiguo 04-07-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.070
Reputación: 32
jhonny Va camino a la famajhonny Va camino a la fama
Otra opción es la siguiente:

En Firebird 2.1 no tendrias que hacer nada mas ya que existe la función lpad dentro del motor... solo sería cuestión de hacer lo siguiente:

Código SQL [-]
Insert into Facturas (Numero,...) values (lpad((Select Gen_Id(FACTURAS, 1) from rdb$database), 8, '0'));

Pero como estas usando Firebird 2.0, deberas registrar la UDF, lo bueno es que esa función ya viene en las UDFs que se distribuyen dentro de Firebird 2.0, por lo que solo bastaría con hacer lo siguiente:

Código SQL [-]
DECLARE EXTERNAL FUNCTION lpad 
  CSTRING(255), INTEGER, CSTRING(1)
  RETURNS CSTRING(255) FREE_IT
  ENTRY_POINT 'IB_UDF_lpad' MODULE_NAME 'ib_udf';

Y luego si, en tu sentencia SQL, hacer lo que dije mas arriba, osea:

Código SQL [-]
Insert into Facturas (Numero,...) values (lpad((Select Gen_Id(FACTURAS, 1) from rdb$database), 8, '0'));

Y listo, eso es todo. Espero te sirva .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 04-07-2008 a las 15:11:37. Razón: Cambiar el ejemplo a un Insert...
Responder Con Cita