Preciso de um auxilio para achar mais dados para um select
15/04/2013
0
SELECT DISTINCT
R.RDB$FIELD_NAME AS NOMECAMPO,
CASE WHEN
(SELECT S.RDB$FIELD_NAME FROM RDB$RELATION_CONSTRAINTS RC
LEFT JOIN RDB$INDICES I ON I.RDB$INDEX_NAME = RC.RDB$INDEX_NAME
LEFT JOIN RDB$INDEX_SEGMENTS S ON S.RDB$INDEX_NAME = I.RDB$INDEX_NAME
WHERE (RC.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY')
AND (I.RDB$RELATION_NAME = R.RDB$RELATION_NAME)
AND (S.RDB$FIELD_NAME = R.RDB$FIELD_NAME))
IS NOT NULL THEN 'SIM'
ELSE 'NAO'
END AS PRIMARYKEY,
CASE R.RDB$NULL_FLAG
WHEN 1 THEN 'SIM'
ELSE 'NAO'
END AS NOTNULL,
F.RDB$FIELD_LENGTH AS TAMANHO,
F.RDB$FIELD_PRECISION AS PRECISAO,
F.RDB$FIELD_SCALE AS ESCALA,
CASE F.RDB$FIELD_TYPE
WHEN 7 THEN 'SMALLINT'
WHEN 8 THEN 'INTEGER'
WHEN 9 THEN 'QUAD'
WHEN 10 THEN 'FLOAT'
WHEN 11 THEN 'D_FLOAT'
WHEN 12 THEN 'DATE'
WHEN 13 THEN 'TIME'
WHEN 14 THEN 'CHAR'
WHEN 16 THEN 'INT64'
WHEN 27 THEN 'DOUBLE'
WHEN 35 THEN 'TIMESTAMP'
WHEN 37 THEN 'VARCHAR'
WHEN 40 THEN 'CSTRING'
WHEN 261 THEN 'BLOB'
ELSE 'UNKNOWN'
END AS TIPOCAMPO,
F.RDB$FIELD_SUB_TYPE AS SUBTIPO,
CSET.RDB$CHARACTER_SET_NAME AS CARACTER
FROM RDB$RELATION_FIELDS R
LEFT JOIN RDB$FIELDS F ON R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME
LEFT JOIN RDB$COLLATIONS COLL ON F.RDB$COLLATION_ID = COLL.RDB$COLLATION_ID
LEFT JOIN RDB$CHARACTER_SETS CSET ON F.RDB$CHARACTER_SET_ID = CSET.RDB$CHARACTER_SET_ID
WHERE R.RDB$RELATION_NAME =:WTABELA
ORDER BY R.RDB$FIELD_POSITION;
Ola, no select acima ta do jeito que eu gosto mas queria saber onde no google acho uma tabela de tipo de dados do firebird para eu complementar esse select com os tipo de dados numeric e decimal.
obrigado
"Deus Abençoe"
R.RDB$FIELD_NAME AS NOMECAMPO,
CASE WHEN
(SELECT S.RDB$FIELD_NAME FROM RDB$RELATION_CONSTRAINTS RC
LEFT JOIN RDB$INDICES I ON I.RDB$INDEX_NAME = RC.RDB$INDEX_NAME
LEFT JOIN RDB$INDEX_SEGMENTS S ON S.RDB$INDEX_NAME = I.RDB$INDEX_NAME
WHERE (RC.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY')
AND (I.RDB$RELATION_NAME = R.RDB$RELATION_NAME)
AND (S.RDB$FIELD_NAME = R.RDB$FIELD_NAME))
IS NOT NULL THEN 'SIM'
ELSE 'NAO'
END AS PRIMARYKEY,
CASE R.RDB$NULL_FLAG
WHEN 1 THEN 'SIM'
ELSE 'NAO'
END AS NOTNULL,
F.RDB$FIELD_LENGTH AS TAMANHO,
F.RDB$FIELD_PRECISION AS PRECISAO,
F.RDB$FIELD_SCALE AS ESCALA,
CASE F.RDB$FIELD_TYPE
WHEN 7 THEN 'SMALLINT'
WHEN 8 THEN 'INTEGER'
WHEN 9 THEN 'QUAD'
WHEN 10 THEN 'FLOAT'
WHEN 11 THEN 'D_FLOAT'
WHEN 12 THEN 'DATE'
WHEN 13 THEN 'TIME'
WHEN 14 THEN 'CHAR'
WHEN 16 THEN 'INT64'
WHEN 27 THEN 'DOUBLE'
WHEN 35 THEN 'TIMESTAMP'
WHEN 37 THEN 'VARCHAR'
WHEN 40 THEN 'CSTRING'
WHEN 261 THEN 'BLOB'
ELSE 'UNKNOWN'
END AS TIPOCAMPO,
F.RDB$FIELD_SUB_TYPE AS SUBTIPO,
CSET.RDB$CHARACTER_SET_NAME AS CARACTER
FROM RDB$RELATION_FIELDS R
LEFT JOIN RDB$FIELDS F ON R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME
LEFT JOIN RDB$COLLATIONS COLL ON F.RDB$COLLATION_ID = COLL.RDB$COLLATION_ID
LEFT JOIN RDB$CHARACTER_SETS CSET ON F.RDB$CHARACTER_SET_ID = CSET.RDB$CHARACTER_SET_ID
WHERE R.RDB$RELATION_NAME =:WTABELA
ORDER BY R.RDB$FIELD_POSITION;
Ola, no select acima ta do jeito que eu gosto mas queria saber onde no google acho uma tabela de tipo de dados do firebird para eu complementar esse select com os tipo de dados numeric e decimal.
obrigado
"Deus Abençoe"
Wilton Júnior
Curtir tópico
+ 0
Responder
Posts
15/04/2013
Joel Rodrigues
Veja se esse tópico te ajuda: [url]http://stackoverflow.com/questions/12070162/how-can-i-get-the-table-description-fields-and-types-from-firebird-with-dbexpr[/url]
Responder
16/04/2013
Joel Rodrigues
Show de bola, amigo.
Obrigado pelo retorno.
Então vou marcar esse tópico como Concluído.
Obrigado pelo retorno.
Então vou marcar esse tópico como Concluído.
Responder
Clique aqui para fazer login e interagir na Comunidade :)