Fórum Storeprocedure com DBX e Firebird 1.5 #296055

19/09/2005

0

Ola Caros amigos,


Estou querendo buscar um valor de um Procedure criada no banco de dados FireBird:

CREATE PROCEDURE INC_CLASSECONTAS
RETURNS (
REGISTRO INTEGER)
AS
BEGIN
REGISTRO = GEN_ID(GEN_CLASSECONTAS,1);
END

Até ai tudo bem esta criada, o problema e buscar este valor.

Estou tentando usar o componente SQLStoredProc, configuro o nome da procedure a conecção com o banco e o parametro tudo normal mas na hora de executar da um erro : Token unknown line 1 , char 29

Se tentar abrir no projeto o sqlstoreproc da outro erro: Cursor not returned from Query.

O que pode ser estes erros?


Desde já agradeço,


Hugo Fabrício


Hugofab

Hugofab

Responder

Posts

19/09/2005

Vinicius2k

Colega,

Se vc quer trazer para a aplicação o valor retornado pela SP precisa acrescentar a instrução ´SUSPEND´ após seu código:
CREATE PROCEDURE INC_CLASSECONTAS 
RETURNS ( 
  REGISTRO INTEGER
) 
AS 
BEGIN 
  REGISTRO = GEN_ID(GEN_CLASSECONTAS,1); 
  SUSPEND;
END

Só desta forma você poderá utilizar o método ´Open´ (ou Active := True) do TSQLStoredProc.
Para procedures que não retornam cursor, como é o caso da sua sem o ´SUSPEND´, utiliza-se o método ´ExecProc´, mas neste caso não existe Result Set.

Particularmente, para SPs selecionáveis, eu prefiro utilizar uma query simples do tipo:
select * from NOME_DA_SP


T+


Responder

Gostei + 0

20/09/2005

Hugofab

Vinicius2K


Adicionei o SUSPEND na procedure
Coloquei um SQLStoredProc1, utilizei o método ExecProc
Desta forma funcionou .

Obrigado pela atenção


Hugo Fabrício


Responder

Gostei + 0

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

Aceitar