🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.java
Article #153601

Re: Fierbird info o tabelach

#153601
From: 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
Technical Details
Message-ID: <k41t5d$16q$1@mx1.internetia.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!wsisiz.edu.pl!plix.pl!newsfeed2.plix.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!not-for-mail
References: <k41elh$tfa$1@mx1.internetia.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!wsisiz.edu.pl!plix.pl!newsfeed2.plix.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!not-for-mail
From: J-23 <baczeklu@poczta.fm>
Newsgroups: pl.comp.lang.java,pl.comp.lang.delphi.bazy-danych
Subject: Re: Fierbird info o tabelach
Date: Thu, 27 Sep 2012 17:54:54 +0200
Organization: Netia S.A.
Lines: 54
Message-ID: <k41t5d$16q$1@mx1.internetia.pl>
References: <k41elh$tfa$1@mx1.internetia.pl>
NNTP-Posting-Host: 87-205-204-65.adsl.inetia.pl
Mime-Version: 1.0
X-Trace: mx1.internetia.pl 1348761581 1242 87.205.204.65 (27 Sep 2012 15:59:41 GMT)
X-Complaints-To: abuse@inetia.pl
NNTP-Posting-Date: Thu, 27 Sep 2012 15:59:41 +0000 (UTC)
In-Reply-To: <k41elh$tfa$1@mx1.internetia.pl>
X-Tech-Contact: usenet@internetia.pl
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120827 Thunderbird/15.0
X-Server-Info: http://www.internetia.pl/
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit