Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Ver un generador (https://www.clubdelphi.com/foros/showthread.php?t=3697)

Rabata 17-09-2003 12:30:00

Ver un generador
 
Me gustaría saber el valor de un generator (Gen_Id(Gen_rapel,1),


Pero sin que haga falta hacer un trigger o meterlo dentro del dataset ( me refiero que no haga falta almacenar para saber el valor), si hay alguna consulta en Interbase que me devuelava el valor del genarador.....

Gracias a todos

__cadetill 17-09-2003 13:32:14

creo que accediendo a las tablas de sistema puedes lograrlo. En concreto creo que es RDB$GENERATORS

kinobi 17-09-2003 14:25:36

Hola,

Cita:

Posteado originalmente por cadetill
creo que accediendo a las tablas de sistema puedes lograrlo.
Sí, pero ...

Cita:

Posteado originalmente por cadetill
En concreto creo que es RDB$GENERATORS
No, amigo Cadetill :) Si el valor de los generadores estuviese dentro de una tabla (aunque sea del sistema) estarían bajo el control transaccional y no es así.

Para consultar el valor de un generador desde el cliente hay que echar mano de la función incorporada GEN_ID y la tabla del sistema RDB$DATABASE ...

Código:

select gen_id(MiGenerador, 0) from rdb$database
Por cierto, aunque en el hilo no se cita, supongo que estamos hablando de InterBase o Firebird.

Saludos.

kinobi 17-09-2003 14:45:28

Hola de nuevo,

un par de comentarios para descargar mi conciencia del complejo de Torquemada a la búsqueda de herejías inexistentes ...

También se puede utilizar la tabla RDB$GENERATORS en la consulta anterior. En realidad se puede utilizar cualquier tabla de la base de datos (de usuario y del sistema), ya que lo verdaderamente importante es la llamada a la función incorporada GEN_ID. El uso de una tabla es (supongo) debido a la necesidad de completar una sentencia SELECT sintácticamente correcta para que no proteste el parser SQL del motor.

Por convenio (ampliamente aceptado) suele utilizarse para este tipo de consultas la tabla RDB$DATABASE.

De todas formas, sí es cierto que la tabla RDB$GENERATORS no almacena el valor de los generadores, por los motivos que expuse antes, y el valor de éstos se almacena en unas páginas especiales (páginas de generadores) en la base de datos.

Saludos.

__cadetill 17-09-2003 15:31:01

pues gracias kinobi por la aclaración, siempre es bueno aprender de un maestro :)


La franja horaria es GMT +2. Ahora son las 21:02:22.

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