Firebird



Gonzalo Odiard wrote:

Jeronimo:
Tengo implementada en Java la consulta de alguna Metadata para FireBird/Interbase.
Quizas te sirva esto:

Para obtener la metadata de los campos de una tabla:

SELECT A.RDB$FIELD_NAME, B.RDB$FIELD_TYPE, B.RDB$FIELD_LENGTH, B.RDB$FIELD_PRECISION, B.RDB$FIELD_SCALE
FROM RDB$RELATION_FIELDS A, RDB$FIELDS B
WHERE (A.RDB$RELATION_NAME = 'tabla'
AND (A.RDB$FIELD_SOURCE = B.RDB$FIELD_NAME)
ORDER BY A.RDB$FIELD_POSITION

Para obtener la PK de una tabla:
select A.RDB$FIELD_NAME FROM RDB$INDEX_SEGMENTS A, RDB$RELATION_CONSTRAINTS B
WHERE B.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY'
AND B.RDB$RELATION_NAME = 'tabla'
AND A.RDB$INDEX_NAME = B.RDB$INDEX_NAME
ORDER BY A.RDB$FIELD_POSITION
Para obtener las FK:

select r1.RDB$CONSTRAINT_NAME, rind.RDB$FIELD_NAME, r2.RDB$RELATION_NAME
FROM RDB$RELATION_CONSTRAINTS r1, RDB$RELATION_CONSTRAINTS r2, RDB$REF_CONSTRAINTS ref, RDB$INDEX_SEGMENTS rind
where r1.RDB$RELATION_NAME = 'tabla'
and r1.RDB$CONSTRAINT_TYPE = 'FOREIGN KEY'
and r1.RDB$CONSTRAINT_NAME = ref.RDB$CONSTRAINT_NAME
and ref.RDB$CONST_NAME_UQ = r2.RDB$CONSTRAINT_NAME
and r1.RDB$INDEX_NAME = rind.RDB$INDEX_NAME
Te sirve? Si hay alguna otra cosa decime.
Saludos

Gonzalo

BUENIISIMO !! Claro que me sirve, muuchas gracias Gonzalo !!
Pero no para solucionar el problema con las gnome-db, porque el problema es
a nivel gnome-db, ... no entiendo como funcionan todas las partes a la hora de retornar datos de una consulta ... , supongo que le tendre que dedicar mas tiempo :-D.

Gracias !!
Saludos

Jeronimo






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]