Fórum Testar se Campo,Tabela,Generator e etc existem. #41593
16/01/2004
0
Existe uma unit no meu programa que atualiza a base quando necessário, mas olha que coisa de índio.
A pessoa que programou fez assim:
procedure TfrmAtualizaBase.Atu3240;
begin
with DmDados.QryGenerica do
begin
Close;
Sql.Clear;
Sql.Add(´ALTER TABLE BANCO ´);
Sql.Add(´ ADD CODINSTR1 VARCHAR(2),´);
Sql.Add(´ ADD CODINSTR2 VARCHAR(2)´);
[b:445863b7db] Try
ExecSql;
Except
end;[/b:445863b7db] Close;
Sql.Clear;
end;
end;
Notem o Try..Except..End;
Isso é feito porque se os campos CODINTRS1 E CODINSTR2 já existirem um erro será gerado, mas como
o Except está vazio não é mostrado o erro.
Bom, eu quero fazer diferente, aliás o correto. Algo como
Se CampoX não existir então
Cria;
Se TabelaX não existir então
Cria;
Se GeneratorX não existir então
Cria;
etc.
Existe isso no IB ???
Meu IB é o 6.0
Obrigado.
Adriano Santos
Curtir tópico
+ 0Posts
16/01/2004
Midas
where rdb$relation_name= (nomedocampo)
Gostei + 0
16/01/2004
Midas
tabelas
select rdb$relation_name from rdb$relations where rdb$system_flag= 0
and rdb$relation_name = nomedatabela
generators
select rdb$generator_name from rdb$generatorS
where rdb$generator_name = nomedogenerator
obs. lembre-se que tem estar em maiusculo o nomes.
Gostei + 0
16/01/2004
Adriano Santos
SELECT RDB$GENERATOR_NAME FROM RDE$GENERATORS
WHERE RDB$GENERATOR_NAME FROM ´PARCE_ALUNOS_GEN´
[b:534aee5590]erro[/b:534aee5590]
SELECT RDB$GENERATOR_NAME FROM RDE$GENERATORS
WHERE RDB$GENERATOR_NAME FROM ´PARCE_ALUNOS_GEN´
SELECT RDB$FIELD_NAME AS EXISTE FROM RDB$RELATION_FIELDS
WHERE RDB$RELATION_NAME = (BOLETO)
/* Tenho o campo boleto nas tabelas Parce_Alunos e Banco. Como que ele sabe que o campo que eu procuro é da tabela Parce_Alunos ? */
[b:534aee5590]Erro[/b:534aee5590]
Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
BOLETO.
colquei também entre strings o nome do campo e do generator e nao entendi pq nao funcionou.
obrigado
Gostei + 0
16/01/2004
Midas
Generators.....
select rdb$generator_name from rdb$generators
where rdb$generator_name = ´GE_IDCLIENTE´
ai depois vc testa ela
if not query.isempty then
showmessage(´Gerador de codigo existe!´);
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)