criacao de procedure ibconsole 7.5

Firebird

04/08/2010

pessoal estou com problema na criação de uma procedure no ibconsole 7.5
, o valor d_inteiro, é um dominio do tipo integer default 0
 
vi que tinha alguns topicos em 2009 com esse mesmo problema, porem sem solução,
a procedure faz parte da video aula 2 de renato matos, curso online: automação comercial em delphi com oop , blps e firebird
 
sei que se substituir o dominio d_inteiro por integer ele passa, mas depois pra frente ele nao executa a stored procedure
aí vai os codigos:
 
 
create procedure sp_get_gerador (pNome Varchar(50))returns (pValor d_inteiro)
as
declare variable vStm Varchar (500);
begin
   vStm ='select next value for'|| pNome|| ' from rdb$database';
   execute statement vStm into:pValor;
   suspend;
end;
Paulo Castro

Paulo Castro

Curtidas 0

Respostas

Eriley Barbosa

Eriley Barbosa

04/08/2010

Primeiro veja se tem o dominio criado e se está com o nome que você digitou na sp, pois, se estiver criado e com o nome que você está utilizando, não tem porque não funcionar. Segundo se trocar por integer passa, mas tem de executar de qualquer maneira. Qualquer coisa poste o erro que está dando.   Atenciosamente   Eriley
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

04/08/2010

create procedure sp_get_gerador (pNome Varchar(50))returns (pValor d_inteiro)
as
declare variable vStm Varchar (500);
begin
   vStm ='select next value for'|| pNome|| ' from rdb$database';
   execute statement vStm into:pValor;
   suspend;
end;


atenção num detalhe: está faltando um espaço após a palavra for.
   vStm ='select next value for '|| pNome|| ' from rdb$database';
                               ^ aqui tem um espaço   
 





GOSTEI 0
Paulo Castro

Paulo Castro

04/08/2010

 

respondendo ao ERILEY VILAGRANDE
 
 
erro que da é o seguinte com o dominio d_inteiro
Error at line 1 - Dynamic SQL Error
SQL error code=-804
lock conflict on no wait transaction
SQL - create procedure sp_get_gerador (pNome Varchar(50))returns (pValor d_inteiro)
as
declare variable vStm Varchar(500);
begin
vStm='select next value for' ||pNome|| 'from rdb$database';
execute statement vStm into: pValor;
suspend;
end;
colocando integer no lugar d_inteiro passa, aí executo o seguinte codigo , observando
que ja tenho criado o generator gen_produtos
 
select * from sp_get_gerador ('gen_produtos')
 
e retorna o seguinte erro,
 
Error at line 1 - Dynamic SQL Error
SQL error code =-104
token unknown - line 1, char 19
forgen_produtos
 
SQL - select * from sp_get_gerador ('gen_produtos')
 
respondendo ao  AO EMERSON, na verdade tem o espaço depois de for, se eu mudar para integer ele até passa,
 
o estranho pessoal é que na video aula com o renato matos ,o codigo passa certinho  com o dominio d_inteiro, que venho utilizando desde o inicio do curso para criação das tabelas, só nao passou na criação dessa procedure,, mas valeu pela ajuda. vamos deixar em aberto quem sabe alguem tem a resposta pra isso
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

04/08/2010

esse erro apresentado:

"Error at line 1 - Dynamic SQL Error
SQL error code =-104
token unknown - line 1, char 19
forgen_produtos"

indica que NÃO há espaço depois da palavra for.

do jeito que está, com a instrução select * from sp_get_gerador ('gen_produtos'), o que será gerado é:

select next value forgen_produtos from rdb$database

quando deveria ser:

select next value for gen_produtos from rdb$database

e, para que isso funcione, a procedure deve ficar assim:

create procedure sp_get_gerador (pNome Varchar(50)) returns (pValor d_inteiro)
as
  declare variable vStm Varchar(500);
begin
  vStm='select next value for ' ||pNome|| ' from rdb$database';
//               espaço aqui ^      e aqui ^
  execute statement vStm into: pValor;
  suspend;
end;

GOSTEI 0
Eriley Barbosa

Eriley Barbosa

04/08/2010

Concordo com o Emerson, amigo digite a procedure como ele mostrou e verá que funciona.   Atenciosamente   Eriley
GOSTEI 0
Paulo Castro

Paulo Castro

04/08/2010

galera deu certo , realmente estava faltando alguns espaços, mas só passou com o integer no lugar do dominio d_inteiro,
 
com d_inteiro ainda tava dando conflito,
mas com o integer passou na as duas etapas, e executou legal,
 
valeu mesmo, agora poderei continuar , rsrsrs, grande abraço
GOSTEI 0
Janio Alexandre,,

Janio Alexandre,,

04/08/2010

por favor, estou precisando de ajuda pois estou enfrentando o mesmo problema, ao tentar criar a procedure com o seguinte codigo:

create procedure sp_get_gerador (pNome Varchar(50)) returns (pValor d_inteiro)
as
declare variable vStm Varchar(500);
begin
vStm = select next value for || pNome || from rdb$database;
execute statement vStm into :pValor;
suspend;
end;

Mensagem de erro exibida(com d_inteiro: Token unknown - line 1, char 68) e com (integer: Unexpected end of command):

Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, char 68
d_inteiro
Statement: create procedure sp_get_gerador (pNome Varchar(50)) returns (pValor d_inteiro)
as
declare variable vStm Varchar(500)

GOSTEI 0
Janio Alexandre,,

Janio Alexandre,,

04/08/2010

O código esta assim:

create procedure sp_get_gerador (pNome Varchar(50)) returns (pValor d_inteiro)
as
declare variable vStm Varchar(500);
begin
vStm=select next value for ||pNome|| from rdb$database;
execute statement vStm into: pValor;
suspend;
end;

e esta sendo exibido a seguinte mensagem de erro:

Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, char 68
d_inteiro
Statement: create procedure sp_get_gerador (pNome Varchar(50)) returns (pValor d_inteiro)
as
declare variable vStm Varchar(500)

Por favor me ajudem.
GOSTEI 0
Aurino Silva

Aurino Silva

04/08/2010

Pessoal o erro que o meu está mostrando é esse:
SQL error code = -104
Unexpected end of command - line 3, column 36

Statement: create procedure sp_get_gerador (pNome Varchar(50)) returns (pValor integer)
as
declare variable vStm Varchar(500)

alguem pode me ajudar?
GOSTEI 0
Fabio Junior

Fabio Junior

04/08/2010

Ola pessoal, eu tamben tenho o mesmo problema.
digitei a procedure da mesma forma que o renato fez no video e nao ta dando certo,acontece o seguinte erro...


a procedure ta dessa forma


create procedure sp_get_gerador (pNome Varchar(50)) returns (pValor integer)
as
declare variable vStm Varchar(500);
begin
vStm=select next value for ||pNome|| from rdb$database;
execute statement vStm into: pValor;
suspend;
end;



ela me retorna esse erro..



ISC ERROR CODE:335544569

ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -104
Unexpected end of command - line 3, column 36

Statement: create procedure sp_get_gerador (pNome Varchar(50)) returns (pValor integer)
as
declare variable vStm Varchar(500)
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

04/08/2010

create procedure sp_get_gerador (pNome Varchar(50)) returns (pValor integer)
as
declare variable vStm Varchar(500);
begin
vStm = select next value for || pNome || from rdb$database;
execute statement vStm into: pValor;
suspend;
end;
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

04/08/2010

create procedure sp_get_gerador (pNome Varchar(50)) returns (pValor integer)
as
	declare variable vStm Varchar(500);
begin
	vStm = select next value for  || pNome ||  from rdb$database;
	execute statement vStm into: pValor;
	suspend;
end;
GOSTEI 0
POSTAR