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 06-12-2007
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Generador a partir del nombre de la tabla..

Como se puede obtener mediante SQL dado el nombre de una tabla, el generator q tiene y el field el q se incrementa con ese generator?
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #2  
Antiguo 06-12-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Inicialmente podria ser un SQL como el siguiente:

Código SQL [-]
select rdb$trigger_name, rdb$trigger_source from rdb$triggers
where rdb$relation_name = UPPER('Nombre_de_la_tabla') and rdb$trigger_source like ('%gen_id%')

El problema es que que el generador no afecta directamente el campo de una tabla, si no que lo hace por medio de un Trigger (Mejor dicho es el Trigger el que lo hace y para ello usa el generador), por lo que es en el Trigger donde se encuentra la información que necesitas... con el SQL que te he mostrado podriamos comenzar a trabajar, quizá con la compañia de la función SubString y alguna otra que devuelva la posición de un substring dentro de una cadena (Tipo Pos() de Delphi).
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 06-12-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
La unica "chapuceria" que me funciono mas o menos bien para traer los generadores de dicha tabla a sido la siguiente en FB 2.1 Beta 2:

Código SQL [-]
SELECT
SUBSTRING(rdb$trigger_source
FROM POSITION('gen_id' IN LOWER(rdb$trigger_source)) + 7 FOR
((POSITION(',' IN LOWER(rdb$trigger_source))) - (POSITION('gen_id' IN LOWER(rdb$trigger_source)) + 7)))
FROM rdb$triggers
WHERE rdb$relation_name = UPPER('Nombre_de_la_tabla') AND LOWER(rdb$trigger_source) LIKE ('%gen_id%')

El 7 es el tamaño de la palabra gen_id mas un espacio , se que no es una excelente idea pero te aproximara un poco o por lo menos tendremos una idea de como hacerlo e ir mejorado este asunto.

Position es una función de FireBird 2.1 que aún no tiene su versión estable, ya que todavia es Beta 2.
__________________
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: 06-12-2007 a las 16:38:58.
Responder Con Cita
  #4  
Antiguo 06-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Yo lo obtengo así:
Código Delphi [-]

nombreGen := 'gen_'+ tablename + '_id';

Pero claro, la Base de datos la he creado yo, además de seguir claros patrones de diseño.

¿no han seguido algún patrón? Fijate bien, ojalá tengas suerte.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, 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
Crear Instancias a partir de un nombre radaalvaro .NET 10 14-04-2009 23:22:32
Obtener IP a partir de netbios (nombre windows) aledieb API de Windows 2 20-10-2006 18:13:43
Ejecutar función de JavaScript a partir del nombre de su identificador (string) dec HTML, Javascript y otros 12 24-08-2006 01:30:45
Crear tabla Access a partir de tabla FoxPro Tecnic2 Conexión con bases de datos 6 01-09-2004 13:37:43
Conocer PrinterIndex a partir del nombre Novás Varios 1 16-07-2004 18:26:14


La franja horaria es GMT +2. Ahora son las 00:40:32.


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