[firebase-br] Tipos de dados

Luiz luiz.mineo em gmail.com
Ter Ago 9 15:53:56 -03 2005


Augusto, muito obrigado pela ajuda! Isso resolveu meu problema.



Augusto wrote:

> Luiz existem algumas convesões
> que vc tem que fazer na mão...
>
> já tive esse problema e resolvi com dicas da lista.
>
> abaixo o SQL que traz os DESCRIBE corretamente, é só alterar o nome da 
> Tabela.
>
>
>
> SELECT DISTINCT CAMPOS.RDB$FIELD_NAME AS COLUMN_NAME, CASE WHEN 
> DADOSCAMPO.RDB$FIELD_PRECISION > 0 THEN 'NUMERIC' WHEN 
> TIPOS.RDB$TYPE_NAME = 'LONG' THEN 'INTEGER' WHEN TIPOS.RDB$TYPE_NAME = 
> 'SHORT' THEN 'SMALLINT' WHEN TIPOS.RDB$TYPE_NAME = 'INT64' THEN 
> 'NUMERIC' WHEN TIPOS.RDB$TYPE_NAME = 'VARYING' THEN 'VARCHAR' WHEN 
> TIPOS.RDB$TYPE_NAME = 'TEXT' THEN 'CHAR' WHEN TIPOS.RDB$TYPE_NAME = 
> 'BLOB' THEN 'BLOB SUB_TYPE' ELSE TIPOS.RDB$TYPE_NAME END AS 
> FIELD_TYPE, CASE WHEN DADOSCAMPO.RDB$FIELD_TYPE IN(16,8) THEN 
> DADOSCAMPO.RDB$FIELD_PRECISION ELSE DADOSCAMPO.RDB$FIELD_LENGTH END AS 
> DATA_LENGTH, ABS(DADOSCAMPO.RDB$FIELD_SCALE) AS DATA_SCALE, CASE 
> CAMPOS.RDB$NULL_FLAG WHEN 1 THEN 'N' ELSE 'Y' END AS NULLABLE FROM 
> RDB$RELATIONS TABELAS, RDB$RELATION_FIELDS CAMPOS, RDB$FIELDS 
> DADOSCAMPO, RDB$TYPES TIPOS WHERE TABELAS.RDB$RELATION_NAME = 'TABELA' 
> AND TIPOS.RDB$FIELD_NAME = 'RDB$FIELD_TYPE' AND 
> TABELAS.RDB$RELATION_NAME = CAMPOS.RDB$RELATION_NAME AND 
> CAMPOS.RDB$FIELD_SOURCE = DADOSCAMPO.RDB$FIELD_NAME AND 
> DADOSCAMPO.RDB$FIELD_TYPE = TIPOS.RDB$TYPE ORDER BY 
> CAMPOS.RDB$FIELD_POSITION
>
>
>
>
>
> Augusto
>
>
>
>
>
>
>
>
>
> ----- Original Message ----- From: "Luiz" <luiz.mineo em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Tuesday, August 09, 2005 10:39 AM
> Subject: Re: [firebase-br] Tipos de dados
>
>
>> Fala Augusto, obrigado pela resposta.
>> Eu estou começando a trabalhar com PHP + Firebird, e fiz uma página 
>> simples que lista uma tabela do meu bd (apenas as colunas e seus 
>> tipos). Na primeira vez fiz a listagem  fazendo uma busca às tabelas 
>> do sistema (e recorrendo a RDB$TYPES para capturar os tipos). Depois, 
>> fiz utilizando a função ibase_num_fields do PHP.
>> Acontece que no meu banco eu montei uma tabela da seguinte forma:
>>
>> CREATE TABLE TABELA(
>> NOME CHAR(50) NOT NULL,
>> ....
>> );
>>
>> Na primeira página, o campo nome era listado como TEXT, enquanto na 
>> segunda já era listado como CHAR.
>> O estranho eh que o tipo CHAR não está na RDB$TYPES, então cheguei a 
>> conclusão que esta tabela  não armazena todos os tipos (ou todos os 
>> subtipos).
>>
>> Alguém saberia me dizer onde a função ibase_field_info busca as 
>> informações que retorna?
>>
>> A versão do PHP que estou usando eh a 5.0.4, e o firebird eh o 1.5
>>
>> Agradeço a ajuda,
>> Luiz.
>>
>> Augusto wrote:
>>
>>> Fala Luiz,
>>>
>>>  Se vc já tiver o FireBird, execute o seguinte commando;
>>>
>>>        SELECT RDB$TYPE, RDB$TYPE_NAME
>>>
>>>        FROM RDB$TYPES WHERE RDB$FIELD_NAME = 'RDB$FIELD_TYPE'
>>>
>>> são todos os tipos suportados pelo FB...
>>>
>>> Augusto
>>>
>>>
>>> ----- Original Message ----- From: "Luiz" <luiz.mineo em gmail.com>
>>> To: <lista em firebase.com.br>
>>> Sent: Monday, August 08, 2005 6:29 PM
>>> Subject: [firebase-br] Tipos de dados
>>>
>>>
>>>> Olá, gostaria de saber aonde posso encontrar uma relação com todos 
>>>> os tipos de dados suportados pelo Firebird (int, char, date...). 
>>>> Procurei no site oficial por alguma documentação com essa 
>>>> informação, mas não consegui encontrar.
>>>>
>>>> Obrigado pela ajuda,
>>>> Luiz.
>>>>
>>>> ______________________________________________
>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>>> Para editar sua configuração na lista, use o endereço 
>>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>
>>>
>>>
>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>> Para editar sua configuração na lista, use o endereço 
>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>> Para editar sua configuração na lista, use o endereço 
>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>





Mais detalhes sobre a lista de discussão lista