terça-feira, 28 de dezembro de 2010

Alguns comandos básicos para Firebird

Corrigindo problemas de instalação do Borland Data Provider For FireBird:

Em alguns casos, o Borland Data Provider For Firebird têm apresentado problemas de instalação, abaixo segue algumas dicas para tentar auxiliar na resolução dos mesmos:

Verificar se o D8 está atualizado com Update Pack#2;

Se o BDP For Firebird foi instalado 'antes' do D8 ter sido atualizado,desinstalar, atualizar o D8 e após isso instalar o BDP For Firebird novamente;

Efetuar testes diretamente via 'Data Explorer' a fim de verificar se a conexão ocorre sem problemas;

Copiar o arquivo 'FirebirdSql.Data.Bdp' para a pasta

C:\Arquivos de programas\Arquivos comuns\Borland Shared\BDS\Shared\Assemblies\2.0

5. No projeto, acesse 'Project Manager' | 'References' e adicione a referência ao 'Firebirdsql.Data.Bdp'


Listar as tabelas e views do banco de dados (Firebird):

SELECT RDB$RELATION_NAME FROM RDB$RELATIONS;

Listar as tabelas do banco de dados (Firebird):

SELECT RDB$RELATION_NAME FROM RDB$RELATIONS
WHERE RDB$VIEW_BLR IS NULL;


Listar as views do banco de dados (Firebird):

SELECT RDB$RELATION_NAME FROM RDB$RELATIONS
WHERE NOT RDB$VIEW_BLR IS NULL;


Obter o valor de um generator:

Para obter o valor de um generator use a função GEN_ID do InterBase/FireBird. 

A sintaxe é: 
GEN_ID(NomeDoGenerator, Incremento);

Exemplos

GEN_ID(Gen_Cliente_Codigo, 1);
GEN_ID(Gen_Cliente_Codigo, 0);

Reiniciar a contagem de um generator:

Para re-iniciar a contagem de um generator execute o comando abaixo.
SET GENERATOR TO X;

Excluir generator (Firebird):

DROP GENERATOR NOME_DO_GENERATOR;

Trocar o tipo de um campo (FireBird):

ALTER TABLE <Table1> ALTER <Campo> TYPE <Tipo do Campo>

Excluir código-fonte de stored procedure (Interbase/FireBird):

UPDATE RDB$PROCEDURES SET RDB$PROCEDURE_SOURCE = 'deletado';

Usando um For Select dentro da StoredProcedure no FireBird/Interbase:

create procedure SP_RETORNO(PCOD INTEGER)
returns (COD INTEGER, NOME VARCHAR(30),
VALOR NUMERIC(15,4))

as
begin
for select CODIGO, NOME from CLIENTES
where CODIGO = :PCOD
into :COD, :NOME do
begin

   select VALOR from VALORES
   where CODIGO = :COD
   into :VALOR;
   if ((VALOR IS NULL) or (VALOR = 0)) then
   VALOR = 1;
   suspend;

end;
end

Nenhum comentário:

Postar um comentário