[firebase-br] unsuccessful metadata update alter procedure

José Fernando Lima jflima.programador em gmail.com
Qui Set 12 14:15:02 -03 2013


Boa tarde Gladiston,

A questão é que ela não tem dependência, essa procedure nem é utilizada
pelo banco, ela é consumida pela aplicação, se você verificar o script da
procedure que já enviei, vai ver que ela apenas faz um select e retorna
alguns valores.
Não consigo fazer nenhum tipo de alteração na procedure, mesmo que seja
comenta-la, pois quando tento usar o ALTER é que da o erro dizendo que esse
DOMAIN$965, que deve ser usada em alguma variável interna dessa procedure,
também esta sendo usado em algum outro lugar, por isso não deixa excluir
para recriar a procedure, pelo menos foi o que eu entendi.
E como já disse anteriormente, já fiz a alteração dessa mesma procedure em
banco de dados com mesma estrutura, porém em outros clientes e esse erro
não ocorreu, somente com esse cliente.
Tenho como contornar isso pela aplicação, mas queria tentar entender porque
isso está ocorrendo somente com esse banco.
Talvez uma solução seria fazer o que o José Mauricio sugeriu, de usar uma
base de dados vazia e migrar os dados para ver se esse domínio é recriado e
não fique compartilhado com as variáveis dessa procedure, mas isso é
demorado, pois é uma base grande.
Como disse, queria entender o porque e se existe alguma outra forma menos
"traumática" de resolver essa questão, visto que é apenas com um cliente,
portanto o problema esta apenas na base dele.

Obrigado
José Fernando


Em 12 de setembro de 2013 11:58, Gladiston Santana
<gladiston em vidy.com.br>escreveu:

> Você está sendo teimoso, basta olhar no ibexpert as dependencias e se for
> procedures, comentar a procedure inteira temporariamente.
> Não dá para saber o que o DOMAIN$965 é porque provavelmente é de um campo
> de uma tabela de sistemas protegendo a integridade referencial (ou
> dependencia) de sua base.
>
>
> Em 12 de setembro de 2013 09:17, José Fernando Lima <
> jflima.programador em gmail.com> escreveu:
>
> > Bom dia Fernando,
> >
> > Infelizmente não funcionou também essa sua sugestão, continua o mesmo
> erro,
> > será que teria como saber quais outras variáveis ou campos de outras
> > tabelas ou procedimentos que estão usando esse mesmo DOMAIN$965? e
> sabendo
> > quais são, seria possível criar um novo domínio para as mesmas afim de
> > acabar com essa dependência?
> >
> > Obrigado
> > José Fernando
> >
> >
> > Em 11 de setembro de 2013 19:57, Fernando Correa <fjcnando em ig.com.br
> > >escreveu:
> >
> > > Jose Fernando,
> > >
> > > Quando ocorre isso comigo, faço assim também:
> > >
> > > ALTER PROCEDURE VERIFICA_CPF_CADASTRADO(
> > > STR VARCHAR(20) CHARACTER SET WIN1252,
> > > PCODIGO INTEGER,
> > > TIPO SMALLINT)
> > > RETURNS(
> > > RNOME VARCHAR(60) CHARACTER SET WIN1252,
> > > RCODIGO INTEGER,
> > > RID_PESSOA INTEGER)
> > > AS
> > > BEGIN
> > >    Exit;
> > > END
> > >
> > > Isso acaba que corta a execução do procedimento, mais nao impede que os
> > > dependentes deixe o procedimento livre.
> > >
> > > Veja se ajuda.
> > >
> > > Atenciosamente
> > > Fernando Correa
> > >
> > >
> > > Em 11 de setembro de 2013 09:16, José Fernando Lima <
> > > jflima.programador em gmail.com> escreveu:
> > >
> > > > Bom dia,
> > > >
> > > > Fernando, tentei o create or alter como você me orientou, mas mesmo
> > assim
> > > > ele tenta excluir primeiramente ocorrendo assim o mesmo erro da
> > > dependência
> > > > desse DOMAIN$
> > > >
> > > > Toy, segue o script para ver se você consegue me dar uma luz:
> > > >
> > > > ALTER PROCEDURE VERIFICA_CPF_CADASTRADO(
> > > >   STR VARCHAR(20) CHARACTER SET WIN1252,
> > > >   PCODIGO INTEGER,
> > > >   TIPO SMALLINT)
> > > > RETURNS(
> > > >   RNOME VARCHAR(60) CHARACTER SET WIN1252,
> > > >   RCODIGO INTEGER,
> > > >   RID_PESSOA INTEGER)
> > > > AS
> > > > declare variable vcodigo integer;
> > > > declare variable vnome varchar(60);
> > > > DECLARE variable vid_pessoa INTEGER;
> > > > BEGIN
> > > >    if (TIPO = 1) then begin
> > > >       select Pessoas.NOME_PESSOA,Pessoas.Codigo,Pessoas.ID_PESSOAS
> from
> > > > pessoas
> > > >             where pessoas.CPF = :STR into
> :VNOME,:VCODIGO,:VID_PESSOA;
> > > >    end
> > > >    else begin
> > > >       select pessoas.NOME_PESSOA,Pessoas.Codigo,Pessoas.ID_PESSOAS
> from
> > > > pessoas
> > > >             where pessoas.CPF = :STR and pessoas.ID_PESSOAS <>
> :PCODIGO
> > > > into :VNOME,:VCODIGO,:VID_PESSOA;
> > > >    end
> > > >    rid_pessoa = :VID_PESSOA;
> > > >    rcodigo = :VCODIGO;
> > > >    rnome   = :VNOME;
> > > >    SUSPEND;
> > > > END
> > > >
> > > > Sou usuário iniciante em firebird, posso estar falando besteira, mas
> > > parece
> > > > que tem alguma variável declarada que ta compartilhando o
> > > > mesmo DOMAIN$965 com outra variável ou campo de alguma outra
> procedure
> > ou
> > > > tabela, então ao tentar excluir para recriar, ela tenta excluir esse
> > > > domínio que esta em uso em outro lugar.
> > > > Não tenho nenhum embasamento, apenas tenho essa impressão.
> > > >
> > > > Desde já agradeço
> > > >
> > > > José Fernando
> > > >
> > > >
> > > > Em 11 de setembro de 2013 08:16, Toy Ghilardi <toyhardcore em gmail.com
> > > > >escreveu:
> > > >
> > > > > Bom dia José.
> > > > >
> > > > > Qual comando você está usando ? Poderia nos passar o script ?
> > > > >
> > > > > Abraço.
> > > > > Victor H. Ghilardi.
> > > > >
> > > > >
> > > > > Em 11 de setembro de 2013 08:05, Fernando Correa <
> fjcnando em ig.com.br
> > > > > >escreveu:
> > > > >
> > > > > > José Fernando, faça assim:
> > > > > >
> > > > > > create or alter procedure_xxx que assim o IB altera sem a
> > necessidade
> > > > de
> > > > > > ter de apagar e criar novamente.
> > > > > >
> > > > > > Facila as vezes. Faça o teste.
> > > > > >
> > > > > > Atenciosamente
> > > > > > Fernando Correa
> > > > > >
> > > > > >
> > > > > > Em 10 de setembro de 2013 11:02, José Fernando Lima <
> > > > > > jflima.programador em gmail.com> escreveu:
> > > > > >
> > > > > > > Bom dia,
> > > > > > >
> > > > > > > Estou tentando alterar uma procedure e esta me dando a seguinte
> > > > > mensagem:
> > > > > > >
> > > > > > > This operation is not defined for system tables. Unsuccessful
> > > > metadata
> > > > > > > update
> > > > > > > Cannot delete
> > > > > > > DOMAIN RDB$965
> > > > > > > There are 3 dependencies
> > > > > > >
> > > > > > > Se eu tento apenas deletar a procedure acontece o mesmo erro
> > > > > > > Se alguém puder ajudar, fico grato
> > > > > > >
> > > > > > > José Fernando
> > > > > > > ______________________________________________
> > > > > > > FireBase-BR (www.firebase.com.br) - Hospedado em
> > > www.locador.com.br
> > > > > > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > > > > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > > > > > Para consultar mensagens antigas:
> > http://firebase.com.br/pesquisa
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Atenciosamente
> > > > > > Fernando Correa
> > > > > > ______________________________________________
> > > > > > FireBase-BR (www.firebase.com.br) - Hospedado em
> > www.locador.com.br
> > > > > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > > > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > > > > Para consultar mensagens antigas:
> http://firebase.com.br/pesquisa
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > toyhardcore em gmail.com.br
> > > > > ______________________________________________
> > > > > FireBase-BR (www.firebase.com.br) - Hospedado em
> www.locador.com.br
> > > > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > > > >
> > > > ______________________________________________
> > > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > > >
> > >
> > >
> > >
> > > --
> > > Atenciosamente
> > > Fernando Correa
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista