🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.java
2 messages
2 total messages Started by J-23 Thu, 27 Sep 2012 11:47
Fierbird info o tabelach
#153600
Author: J-23
Date: Thu, 27 Sep 2012 11:47
32 lines
2029 bytes
Witam
Potrzebuje wyciągnąć informacje o tabelach w Firebird i mam takie zapytanie

SELECT a.RDB$RELATION_NAME, b.RDB$FIELD_NAME, b.RDB$FIELD_ID, 
d.RDB$TYPE_NAME,
        c.RDB$FIELD_LENGTH, c.RDB$FIELD_SCALE
FROM   RDB$RELATIONS a
INNER JOIN RDB$RELATION_FIELDS b
ON     a.RDB$RELATION_NAME = b.RDB$RELATION_NAME
INNER JOIN RDB$FIELDS c
ON     b.RDB$FIELD_SOURCE = c.RDB$FIELD_NAME
INNER JOIN RDB$TYPES d
ON     c.RDB$FIELD_TYPE = d.RDB$TYPE
WHERE  a.RDB$SYSTEM_FLAG = 0
   AND  d.RDB$FIELD_NAME = 'RDB$FIELD_TYPE'
ORDER BY a.RDB$RELATION_NAME, b.RDB$FIELD_ID

wyświetla mi wszystko co chce (prawie) tyko chciałbym jeszcze 2 rzeczy

1) zeby w typie pola była wyświetlana pełna nazwa np:
Integer to mam Integer a nie jak teraz INT
Varchar to mam Varchar a nie jak teraz VARYING

Jeżeli się nie da to ok zapis jest wystarczająco jasny by sobie to 
oprogramować odpowiednio.

2) Jeżeli typ pola został wcześniej zdefiniowany w "Domains" to żeby 
była wyświetlana nazwa tego "Domains" jako typ pola

Szukałem lecz nie znalazłem i stąd prośba do Was

Pozdrawiam
Re: Fierbird info o tabelach
#153601
Author: J-23
Date: Thu, 27 Sep 2012 15:54
53 lines
2875 bytes
W dniu 27.09.2012 13:47, J-23 pisze:
> Witam
> Potrzebuje wyciągnąć informacje o tabelach w Firebird i mam takie zapytanie
>
> SELECT a.RDB$RELATION_NAME, b.RDB$FIELD_NAME, b.RDB$FIELD_ID,
> d.RDB$TYPE_NAME,
>         c.RDB$FIELD_LENGTH, c.RDB$FIELD_SCALE
> FROM   RDB$RELATIONS a
> INNER JOIN RDB$RELATION_FIELDS b
> ON     a.RDB$RELATION_NAME = b.RDB$RELATION_NAME
> INNER JOIN RDB$FIELDS c
> ON     b.RDB$FIELD_SOURCE = c.RDB$FIELD_NAME
> INNER JOIN RDB$TYPES d
> ON     c.RDB$FIELD_TYPE = d.RDB$TYPE
> WHERE  a.RDB$SYSTEM_FLAG = 0
>    AND  d.RDB$FIELD_NAME = 'RDB$FIELD_TYPE'
> ORDER BY a.RDB$RELATION_NAME, b.RDB$FIELD_ID
>
> wyświetla mi wszystko co chce (prawie) tyko chciałbym jeszcze 2 rzeczy
>
> 1) zeby w typie pola była wyświetlana pełna nazwa np:
> Integer to mam Integer a nie jak teraz INT
> Varchar to mam Varchar a nie jak teraz VARYING
>
> Jeżeli się nie da to ok zapis jest wystarczająco jasny by sobie to
> oprogramować odpowiednio.
>
> 2) Jeżeli typ pola został wcześniej zdefiniowany w "Domains" to żeby
> była wyświetlana nazwa tego "Domains" jako typ pola
>
> Szukałem lecz nie znalazłem i stąd prośba do Was
>

Dla potomnych

SELECT a.rdb$relation_name AS tables,
        b.rdb$field_name AS field,
        IIF(POSITION('RDB$' IN c.rdb$field_name) = 
0,c.rdb$field_name,d.rdb$type_name) AS TYPE,
        c.rdb$field_length AS LENGTH
FROM   rdb$relations a
INNER JOIN rdb$relation_fields b
ON     a.rdb$relation_name = b.rdb$relation_name
INNER JOIN rdb$fields c
ON     b.rdb$field_source = c.rdb$field_name
INNER JOIN rdb$types d
ON     c.rdb$field_type = d.rdb$type
WHERE  a.rdb$system_flag = 0
   AND  d.rdb$field_name = 'RDB$FIELD_TYPE'
   AND a.rdb$relation_name = 'NAZWATABELI'
ORDER BY a.rdb$relation_name, b.rdb$field_id

Pozdrawiam
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads