Execute Statement GEN_ID Erro

Firebird

26/09/2004

Oi Pessoal,

Estou querendo fazer uma procedure genérica para retornar o generator das tabelas do meu sistema
Só que quando executo, ele retorna uma mensagem de erro: ´variable type (position 0) does not match returned c´
Ver rotina abaixo. Qual é o erro ou alguém tem uma idéia melhor.

CREATE PROCEDURE PROC_GEN_ID (
    I_GEN VARCHAR(50))
RETURNS (
    O_GEN_ID INTEGER)
AS
BEGIN
  EXECUTE STATEMENT ´SELECT GEN_ID(´ || :I_GEN || ´,1) FROM RDB$DATABASE´ INTO :O_GEN_ID;
END


:arrow: [color=red:1cd7328623]Título alterado pelo Moderador oTTo.[/color:1cd7328623]
:idea: [color=blue:1cd7328623][url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=16976]Saiba como obter resposta rápida..[/url][/color:1cd7328623]
:idea: [color=blue:1cd7328623]Leia sempre [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689]Regras de Conduta.[/url][/color:1cd7328623]
:idea: [color=blue:1cd7328623]Use sempre o Link [url=http://delphiforum.icft.com.br/forum/search.php][img:1cd7328623]http://delphiforum.icft.com.br/forum/templates/subSilver/images/icon_mini_search.gif[/img:1cd7328623] Pesquisar[/url] no topo da Página.[/color:1cd7328623]
:idea: [color=blue:1cd7328623]Evite usar caixa alta nos títulos.[/color:1cd7328623]


Danilo Junior

Danilo Junior

Curtidas 0

Respostas

Beppe

Beppe

26/09/2004

Os geradores são 64 bits, e não 32 bits como estava usando. Se vc declarar o retorna da sua SP como BIGINT deve dar certo. Ou se vc quiser que a SP retorne INTEGER mesmo, atribua o gerador em uma nova variável local e depois atribua ao retorno da função.

Outra coisa: antes do end, está faltando um suspend.


GOSTEI 0
POSTAR