[firebase-br] Tipos de dados

Augusto augusto em cmsolucoes.com.br
Ter Ago 9 16:16:01 -03 2005


Falow


----- Original Message ----- 
From: "Luiz" <luiz.mineo em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, August 09, 2005 3:53 PM
Subject: Re: [firebase-br] Tipos de dados


> 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
>>
>
>
> ______________________________________________
> 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