Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-06-2007
_Willa _Willa is offline
Miembro
 
Registrado: jun 2003
Ubicación: Madrid
Posts: 26
Poder: 0
_Willa Va por buen camino
Crear Procemiento Almacenado

He estado buscando esta misma pregunta, pero no he visto
la forma que se ha resolvido, pues haciendo lo mismo me sigue haciendo
lo mismo

estoy trabajando con Interbase, concretamente con una herramienta
que trae que se llama -Intearactiv SQL- IBConsole -

introduzco este codigo
Código SQL [-]
CREATE PROCEDURE examplex
RETURNS ( THE_RETURN INTEGER)
AS
BEGIN
   THE_RETURN=10;
END
Incluso trate de hacer esto...
Código SQL [-]
CREATE PROCEDURE examplex (the_name CHAR(80))
RETURNS ( THE_RETURN INTEGER)
AS
BEGIN
   THE_RETURN=GEN_ID(PRO_ID_GEN,1);
END

Pero me da exactamente el mismo error, no entiendo la verdad!!


y me da el siguiente error

Código PHP:
Dynamic SQL Error
SQL error code 
= -104
Unexpected end of command
Statement
CREATE PROCEDURE examplex
RETURNS 
THE_RETURN INTEGER)
AS
BEGIN
  THE_RETURN
=10 
Responder Con Cita
  #2  
Antiguo 26-06-2007
_Willa _Willa is offline
Miembro
 
Registrado: jun 2003
Ubicación: Madrid
Posts: 26
Poder: 0
_Willa Va por buen camino
he modificado para hacer otra prueba tal que.
Código SQL [-]
CREATE PROCEDURE examplex (the_namex CHAR(80))
RETURNS ( THE_RETURNx INTEGER)
AS
BEGIN
   THE_RETURNx=GEN_ID(PRO_ID_GEN,1);
END

y me sigue dando el mismo error ??

SQL error code = -104
Unexpected end of command
Statement: CREATE PROCEDURE examplex (the_namex CHAR(80))
RETURNS ( THE_RETURNx INTEGER)
AS
BEGIN
THE_RETURNx=GEN_ID(PRO_ID_GEN,1)

Sabiendo que el Generador
CREATE GENERATOR "PRO_ID_GEN";
esta creado y dispone de valor

Grachia!!
Responder Con Cita
  #3  
Antiguo 26-06-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
No estoy seguro que ese sea el problema pero fijandome en lo que yo he hecho veo unas diferencias prueba asi:

Código SQL [-]
CREATE PROCEDURE examplex
RETURNS ( THE_RETURN INTEGER)
AS
BEGIN
   THE_RETURN=10;
   Suspend;
END

tengo entendido que suspend se utiliza cuando esperas devolver algo para indicar que termino la sentencia o algo por el estilo prueba y avisas
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #4  
Antiguo 26-06-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Además, para llamar a ese SP tendrás que usar un Query así:
Código Delphi [-]
select * from examplex('hola hola');
y abrir la consulta (Open), ya que es un procedimiento almacenado de selección y no de acción.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 27-06-2007
_Willa _Willa is offline
Miembro
 
Registrado: jun 2003
Ubicación: Madrid
Posts: 26
Poder: 0
_Willa Va por buen camino
Gracias a todos, por las posibles respuestas.

eduarcol el ejemplo que das
Código SQL [-]
CREATE PROCEDURE examplex
RETURNS ( THE_RETURN INTEGER)
AS
BEGIN
   THE_RETURN=10;
   Suspend;
END

Al ejecutar este da el mismo error de siempre
Código:
Dynamic SQL Error
SQL error code = -104
Unexpected end of command
Statement: CREATE PROCEDURE examplex
RETURNS ( THE_RETURN INTEGER)
AS
BEGIN
  THE_RETURN=10
Tras algunas pruebas alfin ya no me dio el error, el tema no es el SUSPEND
q no dudo, que puede influir para otras cosas.
Código SQL [-]
SET TERM ^ ;
CREATE PROCEDURE examplex
RETURNS ( THE_RETURN INTEGER)
AS
BEGIN
   THE_RETURN=10;
   Suspend;
END
^    /* ojo este es el indicador de fin de procedimiento, MUY IMPORTANTE  */
SET TERM ; ^

El tema esta en indicar o dilimitar cuando empieza el procedimiento
y cuando terminal, por defecto en interbase acaba en el ultimo punto y coma
pero como veis en el primer ejemplo, no lo debe controlar muy bien, por eso
lo que se hace es cambiar el delimitador de fin de procedimiento por un
caracter un poco "más desconocido o no usado", en este caso es el ^,
ojo importante al final del ultimo END, del procedimiento poner el ^
ya que si no estaria dando el mismo error de siempre.

Esto de controlar el fin del procedimiento , parece que INTERBASE lo lleva muy a raja tabla!!., y la verdad no se pq no acaba en el ultimo END, que seria
lo más lógico.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda con procemiento almacenado rruffino Conexión con bases de datos 1 07-05-2007 21:03:36
Crear procedimiento almacenado en tiempo real ElCherchu Firebird e Interbase 2 26-03-2007 19:30:13
Crear secuencia numerica con un procedimiento almacenado DobleSiete SQL 9 15-04-2005 22:28:25
Como crear un procedimiento almacenado Javi2 SQL 1 11-02-2005 13:32:40
crear vistas en procedimiento almacenado cahosoft Firebird e Interbase 2 26-08-2003 00:05:30


La franja horaria es GMT +2. Ahora son las 19:57:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi