[firebase-br] Duvida Campos Firebird

Alex Miranda de Oliveira alexsistemass em gmail.com
Sáb Out 10 08:58:30 -03 2009


Valeu de mais sandro pela orientação
vou dar uma estudada e ver como posso fazer com
essas informações vai se de grande utilidade para
min...Obrigado

Apenas mais uma duvida tem como como checar
se existe primary key e foregn key...


ate +



2009/10/10 Sandro Souza <escovadordebits em gmail.com>

> Bom dia/tarde Alex.
>
> Grande Alex, a grande maioria dos SGBDs (não sei se todos) possuem tabelas
> de sistemas feitas com o propósito de podermos consultá-las para conhecer a
> estrutura daquele determinado banco de dados.
>
> Não vou detalhar tudo aqui no momento (seria muito extenso), mas vou
> comparar o pouco que sei sobre o mySQL com o pouco que sei sobre o Firebird
> para que sirva de luz (pelo menos é essa a intenção). :D
>
> No caso do mySQL, se não me engano, existe um "schema" (esquema = base de
> dados) chamado "INFORMATION_SCHEMA", onde você pode ler os dados sobre todos
> os outros schemas, ou seja, existe uma base de dados principal
> (INFORMATION_SCHEMA) que contém as informações sobre a estrutura (DDL) de
> todas as bases de dados daquele servidor mySQL, como a lista de bases de
> dados (tabela SCHEMATA, campo SCHEMA_NAME), a lista de tabelas daquela base
> de dados (tabela TABLES, campos TABLE_SCHEMA e TABLE_NAME), a lista dos
> campos/colunas de cada tabela (tabela COLUMNS, campos TABLE_SCHEMA,
> TABLE_NAME e COLUMN_NAME) entre outras tabelas.
>
> No caso do Firebird, não existe uma base de dados principal contendo essas
> informações. Elas estão dentro de cada base de dados, contendo apenas as
> informações sobre a estrutura daquela base de dados apenas. Nesse ponto, o
> $$$ Oracle $$$ e o M$$$ SQL Server também se assemelham ao Firebird.
>
> Cada base de dados do Firebird possui tabelas especiais, chamadas de
> "tabelas de sistema", que sempre iniciam com o prefixo "RDB$" ([R]elational
> [D]ata[B]ase = banco de dados relational), e da mesma forma que no mySQL (e
> todos os outros SGBDs que tenham esse tipo de informação) podemos ler essas
> tabelas e conhecer a estrutura daquela base de dados.
>
> Sendo assim, no caso do Firebird, assim que você se conecta a uma base de
> dados, você pode obter as informações básicas sobre aquela base de dados na
> tabela RDB$DATABASE.
>
> A lista de tabelas e visões fica na tabela RDB$RELATIONS (o campo
> RDB$RELATION_NAME contém o nome da tabela, o campo RDB$SYSTEM_FLAG é sempre
> 1 se aquela tabela ou visão for de sistema e o campo RDB$VIEW_BLR é sempre
> NULL se for realmente uma tabela), a lista de campos/colunas fica na tabela
> RDB$RELATION_FIELDS (o campo RDB$RELATION_NAME contém o nome da tabela, o
> campo RDB$FIELD_NAME contém o nome do campo/coluna, o campo
> RDB$FIELD_POSITION contém a posição/ordem do campo dentro da sua tabela (use
> no ORDER BY)) entre outras tabelas.
>
> Claro que existem outras tabelas de sistema, mas aqui eu coloquei apenas a
> "ponta do iceberg". Espero que lhe ajude na sua aventura. :D
>
> Espero ter ajudado mais que atrapalhado. :D
>
> Alex Miranda de Oliveira escreveu:
>
>>  Quero saber se no firebird existe algum jeito de saber
>> se antes deu criar uma tabela ou um campo..
>>
>> se tem jeito eu checar se ela existe
>> e so depois criar a tabela ou o campo...
>>
>> porque de checar se a tabela existe eu sei que no mysql existe
>>
>> conto com a ajuda de vcs...
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>>
>>
>



Mais detalhes sobre a lista de discussão lista