Totalmente perdido

Firebird

25/08/2003

Boa noite pessoal. escrevi uma procedure que coloca valores para mim em uma tabela chamada tipo. ela usa uma fK(cod_classe).

Não estou conseguindo colocar valores quando eu executo ela. Ela não dá erro mas não insere os valores. olhem o meu código.

CREATE PROCEDURE TIPO_BEM_INCLUIR
(
P_COD_CLASSE INTEGER,
P_NOME_TIPO VARCHAR(50)
)
RETURNS
(
P_COD_TIPO INTEGER
)
AS
begin
select max(cod_Tipo) from Tipo_bem
into :p_cod_tipo;
if (p_cod_Tipo is null) then
p_cod_tipo = 1;
else
p_cod_tipo= p_cod_tipo + 1;
insert into tipo_bem(cod_tipo,cod_classe,nome_tipo,st_tipo)values
(:p_cod_tipo,:p_cod_classe,:p_nome_tipo,´V´);
end
^

SET TERM ; ^


Obs: Não estou usando o suspend. Se alguém puder me ajudar


Mineiro

Mineiro

Curtidas 0

Respostas

Afarias

Afarias

25/08/2003

|Não estou conseguindo colocar valores quando eu executo ela. Ela não
|dá erro mas não insere os valores. olhem o meu código.

Como vc está executando?!?!

... não vi nenhum erro na procedure, inclusive, pra ter certesa criei uma igual para testar e funcionou perfeitamente.


T+


GOSTEI 0
Mineiro

Mineiro

25/08/2003

cara estou executando ela pela store procedure do delphi 7. até pelo interbase chamando a o execute procedure ela não dá valor.


GOSTEI 0
Afarias

Afarias

25/08/2003

|cara estou executando ela pela store procedure do delphi 7. até pelo
|interbase chamando a o execute procedure ela não dá valor.

Vc quer dizer pelo IBConsole né?!

Bom, como disse, não estou vendo qualquer erro na procedure e, comigo funciona perfeitamente.

não sei... não retorna nenhum erro?? não insere a linha?? não tem nenhuma trigger before/after insert?? sei lá...


T+


GOSTEI 0
Adrinei

Adrinei

25/08/2003

Afarias,

Uma vez tive um problema parecido e faltava ´suspend´ no final da procedure para ela retornar o valor ao delphi.
Se olhasse no banco de dados estava calculando certo, entretanto, sem a cláusula suspend o valor não era retornado ao delphi.


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

25/08/2003

os dados estão sendo ´commitados´?
não sei pelo IBConsole, mas algumas ferramentas não ficam com o AutoCommit ligado. veja se não é isso (se é que esse recurso existe no IBConsole).


GOSTEI 0
Afarias

Afarias

25/08/2003

|Uma vez tive um problema parecido e faltava ´suspend´ no final da
|procedure para ela retornar o valor ao delphi

sim, tem q se estar atento a isto.

* mas * SUSPEND só é necessário em procedimentos que serão usados em SELECTs (SELECT * FROM PROCEDIMENTO) -- procedimentos ´executáveis´ não dependem de SUSPEND para retornar os valores (EXECUTE PROCEDURE PROCEDIMENTO...)


T+


GOSTEI 0
POSTAR