Verificar se o campo existe, se não existe cria-lo (em SQL)
Sabem me dizer se é possivel eu verificar se o campo existe, caso não exista cria-lo, mas eu gostaria de fazer isso em um Script SQL e não no Delphi.
Weber
Curtidas 0
Melhor post
Fsflorencio
20/09/2004
Dá uma olhada neste script.
select *
from rdb$relation_fields
where RDB$RELATION_FIELDS.rdb$relation_name = ´CLIENTES ´ AND
RDB$RELATION_FIELDS.RDB$FIELD_NAME = ´COD_EMPRESA ´
Se existir o campo cod_empresa da tabela clientes, vai retornar algum registro.
Se vc usar o interbase coloque espaços até dar 31 caracteres entre as aspas, se vc usa o firebird 1.5 não precisa.
[]´s
select *
from rdb$relation_fields
where RDB$RELATION_FIELDS.rdb$relation_name = ´CLIENTES ´ AND
RDB$RELATION_FIELDS.RDB$FIELD_NAME = ´COD_EMPRESA ´
Se existir o campo cod_empresa da tabela clientes, vai retornar algum registro.
Se vc usar o interbase coloque espaços até dar 31 caracteres entre as aspas, se vc usa o firebird 1.5 não precisa.
[]´s
GOSTEI 1
Mais Respostas
Afarias
18/09/2004
vc pode apenas executar o script de criação do campo -- caso ele já exista vai retornar um erro, dai é só ignorar.
T+
T+
GOSTEI 0
Weber
18/09/2004
Mas para isso eu teria que usar o Try do delphi... o que estou querendo fazer é executar atualizações de banco de dados utilizando o programa compactador Winrar.
O winrar aceita comandos MS-DOS após a descompactação do arquivo, dessa forma eu posso fazer a atualização do banco de dados usando o ISQL CONNECT, mas o programa é quando o campo já existe no banco de dados, pois o script não é executado por completo quando isso acontesse.
Por isso estou procurando uma forma de testar se o campo já existe ou não no proprio script.
O winrar aceita comandos MS-DOS após a descompactação do arquivo, dessa forma eu posso fazer a atualização do banco de dados usando o ISQL CONNECT, mas o programa é quando o campo já existe no banco de dados, pois o script não é executado por completo quando isso acontesse.
Por isso estou procurando uma forma de testar se o campo já existe ou não no proprio script.
GOSTEI 0
Afarias
18/09/2004
|mas o programa é quando o campo já existe no banco de dados, pois o
|script não é executado por completo quando isso acontesse.
se vc está usando o ISQL.EXE do IB (ou FB) para executar o script, sua informação está incorreta. o ISQL retorna uma mensagem de erro mas NÃO para a execução do script, concluindo TODO ELE.
Vc pode evitar esse retorno de erro redirecionando-o para um arquivo ou para NUL, como segue::
isql banco.fdb -i upd.sql -u usuario -p senha -m -o upd.log
ou
isql banco.fdb -i upd.sql -u usuario -p senha -m -o nul
|Se vc usar o interbase coloque espaços até dar 31 caracteres entre as
|aspas,
Eu uso Interbase (TB) e até onde lembro nunca precisei fazer isso.
T+
|script não é executado por completo quando isso acontesse.
se vc está usando o ISQL.EXE do IB (ou FB) para executar o script, sua informação está incorreta. o ISQL retorna uma mensagem de erro mas NÃO para a execução do script, concluindo TODO ELE.
Vc pode evitar esse retorno de erro redirecionando-o para um arquivo ou para NUL, como segue::
isql banco.fdb -i upd.sql -u usuario -p senha -m -o upd.log
ou
isql banco.fdb -i upd.sql -u usuario -p senha -m -o nul
|Se vc usar o interbase coloque espaços até dar 31 caracteres entre as
|aspas,
Eu uso Interbase (TB) e até onde lembro nunca precisei fazer isso.
T+
GOSTEI 0
Weber
18/09/2004
afarias, obrigado pelo esclarecimento.
GOSTEI 0
Joelson
18/09/2004
Alguém sabe como fazer isso no próprio delphi 5 com firebierd 2.5? (Verificar se o campo existe, se não existe cria-lo (em SQL))
GOSTEI 0