Salut;
Comment sélectionner les champs leur taille et type et plus d'infos d'une table?
merci de votre aide et a plus
:ccool:
Version imprimable
Salut;
Comment sélectionner les champs leur taille et type et plus d'infos d'une table?
merci de votre aide et a plus
:ccool:
tout depend de l'outil que tu utilises et ce que tu veux en faire
sous isql unpar exempleCode:show table matable
Bonjour,
J'utilise Fibplus commen faire avec les composant de Fibplus sous delphi?
merci
Bonjour
Avec les composants FIBPlus, tu dois interroger directement les tables systèmes de Firebird (RDB$*).
Par exemple, pour avoir la liste des tables et vues non systèmes :La liste des tables et colonnes :Code:
1
2
3 select rdb$relation_name from rdb$relations where rdb$system_flag = 0
Une page avec plus de détails sur les metadonnées : voir le lienCode:
1
2
3
4
5
6 select F.rdb$relation_name, F.rdb$field_name from rdb$relation_fields F inner join rdb$relations R on R.rdb$relation_name = F.rdb$relation_name where R.rdb$system_flag = 0 and R.rdb$relation_type = 0 order by F.rdb$relation_name, F.rdb$field_name
Après, il est impératif de s'appuyer sur la doc et éviter les bidouilles aux conséquences malheureuses (corruption de bases) en se limitant aux seules lectures. Faq Firebird
Une autre piste à étudier : voir si les composants FIBPlus ne permettent pas d'obtenir les meta-données de la base de données.
--
Philippe.
salut j'ai trouver la solution pour avoir touts les renseignements des champs
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 SELECT r.RDB$OWNER_NAME, rf.RDB$RELATION_NAME, rf.RDB$FIELD_NAME, case f.RDB$FIELD_TYPE when 12 then 'DATE' when 14 then 'CHAR' when 6 then 'NUMBER' when 35 then 'DATE' when 37 then 'VARCHAR2' when 7 then 'NUMBER' when 8 then 'NUMBER' when 27 then 'NUMBER' when 261 then 'LONG' else f.RDB$FIELD_TYPE end, case f.RDB$FIELD_TYPE when 12 then 'DATE' when 14 then 'CHAR' when 16 then 'NUMERIC' when 35 then 'TIMESTAMP' when 37 then 'VARCHAR' when 7 then 'SMALLINT' when 8 then 'INTEGER' when 27 then 'DOUBLE' when 261 then 'BLOB' else f.RDB$FIELD_TYPE end, case f.RDB$FIELD_TYPE when 261 then f.RDB$SEGMENT_LENGTH else f.RDB$FIELD_LENGTH end , 0, 0, case rf.rdb$null_flag when 1 then 'N' else 'Y' end, rf.RDB$FIELD_POSITION FROM RDB$RELATIONS r join RDB$RELATION_FIELDS rf on rf.RDB$RELATION_NAME=r.RDB$RELATION_NAME left join RDB$FIELDS f on f.RDB$FIELD_NAME = rf.RDB$FIELD_SOURCE where r.RDB$SYSTEM_FLAG=0