Francis David

Tecnologia, Ciência e Sociedade

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.

Inicializando PostgreSQL

Filed under: PostgreSQL, Dicas — fdavid at 11:24 am on Tuesday, January 15, 2008

postgresql.png

Se você utiliza Slackware e esta instalando o PostgreSQL com um pacote, não tem o que se preocupar.

Agora se prefere compilar apartir dos fontes (seja lá por qual motivo) o processo é super simples e consta no arquivo INSTALL.

Eu só senti dificuldade para inicializar automáticamente o PostgreSQL, pelo pacote ele cria o /etc/rc.d/rc.postgres mas compilando não encontrei esse arquivo, na internet nem local.

Então peguei o pacote novamente, descompactei e só ajustei a variavel que indica onde esta os binários:

$PREFIX=/usr para $PREFIX=/usr/local/pgsql.

Disponibilizo o arquivo para quem estive como mesmo problema e não queira descompactar o pacote.

Versões utilizadas:
Slackware 11.0 & PostgreSQL 8.2.6

Formatação da data

Filed under: Kylix, Delphi, Dicas, Lazarus — fdavid at 1:30 pm on Friday, May 25, 2007

lazdeky.jpgVocê precisa fazer a máscara de um campo tipo data, automaticamente você utiliza a “/” como separador (padrão no Brasil), quando vai instalar no cliente dá a mensagem “Invalid date format” porque o usuário configurou o “.” como separador de data.

Para obter qual o separador que esta sendo utilizado basta utilizar as variáveis internas que retorna um char com o caracter.

var DateSeparator: Char;
var TimeSeparator: Char;
var DecimalSeparator: Char;
var ThousandSeparator: Char;


entre outros, consulte a unit SysUtils para saber mais.

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.

Next Page »