Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-10-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 18
hecospina Va por buen camino
Saber en que numero va un generador ?

Hola Amigos del Foro
Uso FireBird 2.0

Necesito saber mediante una consulta sql el numero en el que va cada uno de los generadores de la base de datos.

Al realizar la consulta
Código SQL [-]
select * from rdb$generators
me aparece el nombre y el id mas no en que numero va

tambien he probado con el sql
Código SQL [-]
Select gen_id (nombre_generador,0) from rdb$system
pero solo me devuelve el numero en le que va el generador especifico

Hay alguna tabla del sistema RDB$ que tenga esta informacion
o que sql puede hacer

Gracias
Responder Con Cita
  #2  
Antiguo 20-10-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Wink

Hola

Revisa este hilo, si bien no es lo mismo tratan algo similar

Salu2
__________________
BlueSteel
Responder Con Cita
  #3  
Antiguo 21-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
al menos con las 2 instrucciones que tienes se puede construir un SP que devuelva una consulta (por ejemplo) con 2 columnas, nombre del generador y valor actual.

Código SQL [-]
SP de seleccion:
parámetros de salida del SP:
nombre varchar(40)
valor bigint /* depende de la versión y dialecto */
as

for select NombreDecampoDelGenerador from rbd$generator into :nombre do
begin
   Select gen_id (:nombre,0) from rdb$system into :valor;
   suspend;
end;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 21-10-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 26
eduarcol Va por buen camino
a mi por lo general me funciona esto:

Código SQL [-]
Select gen_id (nombre_generador,0) from rdb$Database
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #5  
Antiguo 21-10-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 18
hecospina Va por buen camino
Gracias por sus respuestas

La solucion que me da Lepe de crear un procedimiento almacenado la debo desechar pues la persona que diseño la base de datos no permite que se visualicen los scrip de dichos procedimientos y cuando voy a compilar uno nuevo me lanza un error

Eduarcol tiene razon al decir que este select funciona correctamente, solo que debo hacer una consulta por cada generador

Yo esperaba que en alguna de las tablas del sistema apareciera el registros de estos datos
Responder Con Cita
  #6  
Antiguo 23-10-2008
Avatar de boreg
boreg boreg is offline
Miembro
 
Registrado: oct 2007
Ubicación: México, México
Posts: 76
Poder: 18
boreg Va por buen camino
Execute Block

Saludos a todos, haciendo algunas modificaciones al codigo del SP sugerido por Lepe y utilizando un Execute Block obtendrás lo que buscas:


Código SQL [-]
EXECUTE BLOCK returns(
  GENERADOR VARCHAR(40),
  VALOR BIGINT)
AS
BEGIN
  for EXECUTE STATEMENT 'select rdb$generator_name from rdb$generators'
      into :GENERADOR
      do
      begin
       EXECUTE STATEMENT 'Select gen_id ('||:GENERADOR||',0) from rdb$database'
       into :valor;
       suspend;
      end
END

yo tengo Firebird 2.0.4 dialecto 3 y me funcionó a la perfección, espero que atí tambien .
Responder Con Cita
  #7  
Antiguo 23-10-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 18
hecospina Va por buen camino
Hola Boreg

Al ejecutar el scrip me sale un error, pero es lo de menos, te agradezco la respuesta no sabia de Execute Block, voy a leer mas sobre el tema pero creo que con esto ya soluciono mi inquietud

Gracias
Responder Con Cita
Respuesta



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
Saber si es un numero Nomad Varios 39 09-07-2007 17:20:35
Saber si un texto es un número elcigarra OOP 29 30-09-2006 00:25:56
Saber el número de serie de la placa fer21unmsm Varios 3 30-12-2005 18:36:51
Saber numero de usuarios a un alias oscjae Conexión con bases de datos 1 16-05-2005 19:26:15
Saber el numero de caracteres de un memo judoboy Varios 1 20-06-2003 14:27:19


La franja horaria es GMT +2. Ahora son las 06:27:33.


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