Francis David

Tecnologia, Ciência e Sociedade

Firebird com C

Filed under: Firebird — fdavid at 5:38 am on Sunday, January 17, 2010

fb2min_logo.jpg

Em /opt/firebird/example/api você encontra exemplos de como acessar um banco de dados Firebird pela API (exemplo em C), para detalhes de funcionamento consulte o manual da API.

Para compilar os exemplos você deve utilizar:
gcc <file.c> <fb lib> -lpthread

<fb lib> é o diretório onde se encontra a biblioteca de funcões, no Linux esta em /opt/firebird/lib/libfbclient.so
-lpthread Adiciona suporte para multithread, necessário para compilar

Relacionamento ForeignKey

Filed under: Firebird, Dicas — fdavid at 8:08 pm on Friday, April 18, 2008

fb2min_logo.jpg

Manipulando relacionamento foreignkey

Para apagar:
ALTER TABLE tabela DROP CONSTRAINT relacionamento;

Para criar:
ALTER TABLE tabelaDetail ADD CONSTRAINT relacionamento FOREIGN KEY (keyDetail) REFERENCES tabelaMaster (keyMaster) ON UPDATE NO ACTION ON DELETE NO ACTION;

Para alterar:
Não encontrei como, substituindo ADD por ALTER não funciona.

Caso não utilize front-end gráfico para manipular seu banco, no ISQL o comando SHOW TABLE tabelaDetail mostra o nome do relacionamento.

Acessando FB/IB em Dialect 3

Filed under: Delphi, Firebird, Dicas — fdavid at 11:08 pm on Wednesday, February 20, 2008

lazdeky.jpg

O Borland Database Engine (BDE) não acessa por default bancos de dados Firebird ou Interbase em Dialect 3, pesquisando, nem as últimas versões do BDE conseguem fazer isso (nada confirmado na prática).

Mas a solução para esse problema é muito simples que você vai se perguntar, “Porque a Borland não fez isso ainda ?”.

Acesse o registro do Windows:
Iniciar >> Executar:  digite regedit

Entre no seguinte chave:
HKEY_LOCAL_MACHINE
|-Software
|-Borland
|-Database Engine
|-Settings
|-DRIVERS
|-INTRBASE
|-DB OPEN

Clique com o botão direito e selecione Novo >> Valor da sequencia
digite: SQLDIALECT e altere o valor do dado para 1 (um).

Reinicie seu computador, entre no BDE e crie novamente o alias, você encontrará a propriedade SQLDIALECT para alterar.

Os demais alias já criados não apresentam a nova propriedade, mas iram acessar o banco pelo valor default que estiver no registro do Windows, no exemplo dialect 1.

Alterando campos no Firebird

Filed under: Firebird, Dicas — fdavid at 3:16 pm on Wednesday, May 23, 2007

fb2min_logo.jpg

Apesar de muito procurar não consegui encontrar um método para alterar um campo de NULL para NOT NULL sem utilizar os objetos internos do Firebird.

Para isso é necessário:

UPDATE RDB$RELATION_FIELDS SET RDB$NULL_FLAG = 1
WHERE RDB$RELATION_NAME = ‘tablename’ AND
RDB$FIELD_NAME = ‘fieldname’ ;

onde: 0 NULL e 1 NOT NULL
Outras alterações na tabela são possíveis sem tanto trabalho, como por exemplo:

Alterar o tipo de um campo:

ALTER TABLE tablename ALTER fieldname TYPE typefield;

Mas atenção, o Firebird não permite alterações que possam resultar em perda de dados, se um campo é VARCHAR(50) não é possivel reduzi-lo, ai não tem jeito precisa excluir e recriar.

ALTER TABLE tablename DROP fieldname;
ALTER TABLE tablename ADD fieldname typefield;

Ao contrario do que muitos pensam o MODIFY não funciona no Firebird, pelo menos na versão 2.0.