Fórum Erro na criação de procedure #37686

29/07/2003

0

This operation is not defined for system tables.
unsuccessful metadata update.
STORE RDB$PROCEDURE_PARAMETERS failed.
lock conflict on no wait transaction.
attempt to store duplicate value (visible to active transactions) in unique index ´RDB$INDEX_18´.

procedure pr_muda_cob(coborig integer,cobdest integer, quant integer) as
declare variable num_updates interger;
declare variable codcliente;
begin
num_updates=0;
for select cod_clien from cliente
into :codcliente do
if (num_updates<=quant) then
update cliente
set cod_cob= :coddest
where cod_clien= :codcliente;
end
else
exit;
end


Midas

Midas

Responder

Posts

29/07/2003

Afarias

Pra mim o código abaixo funciona perfeitamente:

set term ^;

create procedure pr_muda_cob(coborig integer, cobdest integer, quant integer) as
declare variable num_updates integer;
declare variable codcliente integer;
begin
num_updates=0;
for select cod_clien from cliente where cod_cob=:coborig
into :codcliente do
if (num_updates<quant) then
begin
num_updates=num_updates+1;
update cliente set cod_cob=:cobdest
where cod_clien=:codcliente;
end
else
exit;
end^


T+


Responder

Gostei + 0

29/07/2003

Midas

quando eu dou crtl + enter para criar a procedure no ibconsole e chega travar o ibconsole ...

set term ^;
CREATE PROCEDURE pr_muda_cob
(coborig integer,cobdest integer,quant integer)
AS
declare variable num_update integer;
declare variable codcliente integer;
BEGIN
num_update=0;
for select cod_clien from cliente
where cod_cob= :coborig
into codcliente do
if (num_update<= :quant) then
begin
num_update=num_update+1;
update cliente
set cod_cob= :cobdest
where cod_clien= :codcliente;
end
else
exit;
END ^

toda vez ele trava ...


Responder

Gostei + 0

29/07/2003

Afarias

Qual a versão do seu IB?? Qual a versão do IB Console??

Rodo perfeitamente o SP no IBConsole. IB 6.0.2.0, IB Console 1.0.0.336


T+


Responder

Gostei + 0

29/07/2003

Midas

ibconsole 1.0.1.344
interbase 6.0.2.0

não tenho que abilitar nada para crear procedure numa tabela ?
é minha primeira procedure no banco de dados ...
nada haver ?


Responder

Gostei + 0

29/07/2003

Afarias

humm... não estou entendendo...

A única coisa q vc precisa pra criar esta estored procedure, é ter a tabela CLIENTE com os campos necessários.

Crie um novo banco, crie a tabela e então, crie o procedimento. Me diga o q acontece.


T+


Responder

Gostei + 0

30/07/2003

Midas

segui suas orientações. Deu tudo ok .. criou a procedure ...
tornei a fazer no meu database .... e tornou a dar erro porem antes dele travar ele apareceu a mensagem ...

I/O error file ´C:\projeto\pac\bd\pac.gdb´
Error while trying to write to file
Acesso negado .
on line 2 : Create procedure pr_muda_cob (codorig integer....
(MINHA PROCEDURE TODA )

E ai o que faço ... preciso da procedure o meu database mas ela não funciona ... por que deste erro ?


Responder

Gostei + 0

30/07/2003

Midas

Removi o interbase... total ... ate as pastas do interbase eu tirei reiniciei o servidor e reinstalei .. e mesmo assim travou novamente ...


Responder

Gostei + 0

30/07/2003

Afarias

Me parece q seu DATABASE (arquivo GDB) está corrompido


Utilize o GFIX ou o IBConsole para verificar e corrigir.

No IBConsole vá em Database->Maintenance->Validation (não conecte no banco de dados, só no servidor) -- se houver erros, clique em REPAIR.

Depois faça um backup e restaure seu banco.


Veja a sessão de arquivos/faq sobre corrupção do banco de dados no site:

http://www.firebase.com.br/


T+


Responder

Gostei + 0

30/07/2003

Midas

Cara tu é bom mesmo ... tu é o cara afarias ..heheheheh
deu certo .. ufaaaaaa !!!!!!!!!!!! estou mais aliviado ...

valeu !!!!!!!!!!!!!!!
reparei e funcionou ...


Responder

Gostei + 0

30/07/2003

Afarias

Tranquilo cara. Legal q tá tudo beleza agora!


T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar