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
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
Curtir tópico
+ 0
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:
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:
T+
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
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
Clique aqui para fazer login e interagir na Comunidade :)