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 Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-10-2005
dape dape is offline
Miembro
 
Registrado: ene 2004
Ubicación: Tacna - Perú
Posts: 138
Poder: 21
dape Va por buen camino
Problema con stored procedure

Hola amigos, acá otra vez con problemas, le comento que estoy utilizando por primera vez stored procedure, y me ha salido el siguiente error:

Código:
 
Dynamic SQL Error
SQL error code = -104
Unexpected end of command
statement: create procedure max_dpto
returns (id_dpto integer)
as
declare variable codigo integer
Este error me sale cuando pongo punto y coma ( al final de integer y si lo quito se sale que falta eso.

No sé si les servirá pero pongo el sp que quiero crear:

Código:
 
create procedure max_dpto
  returns (id_dpto integer)
as
  declare variable codigo integer;
begin
 select max(id_dpto) from dpto into :codigo
 if (:codigo is null) then
 begin
  id_dpto = 0;
 end
 else
 begin
  id_dpto = codigo + 1;
 end;
end;
Espero que alguno de ustedes tenga alguna idea sobre el error que me sale.

Desde ya les doy las gracias por la ayuda que tengan a bien darme.

Saludos desde Tacna - Perú

David
Responder Con Cita
  #2  
Antiguo 14-10-2005
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Poder: 19
lpmlpm Va por buen camino
intentalo asi:

Código SQL [-]
 create procedure max_dpto
  returns (id_dpto integer)
as
  declare variable codigo integer;
begin
 select max(id_dpto) from dpto into :codigo; --aqui si lleva punto y coma
 if (:codigo is null) then
 begin
  id_dpto = 0;
 end
 else
 begin
  id_dpto = codigo + 1;
 end --aqui no lleva punto y coma
end --ni aqui tampoco
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
Responder Con Cita
  #3  
Antiguo 16-10-2005
dape dape is offline
Miembro
 
Registrado: ene 2004
Ubicación: Tacna - Perú
Posts: 138
Poder: 21
dape Va por buen camino
sigue igual

Hola hize lo que se me indicó en el post anterior pero sigue saliendome el mismo error, ese error al final del integer.

Saludos desde Tacna - Perú

David
Responder Con Cita
  #4  
Antiguo 17-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cambiale el nombre del parámetro de entrada, quizás haya conflictos, ya que se llama igual que el campo.

suerte
__________________
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 17-10-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Mira usa este codigo y listo. ID es el campo en MyTabla de la bd
Código SQL [-]
Select Coalesce(Max(ID)+1, 0) From MyTabla
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #6  
Antiguo 18-10-2005
dape dape is offline
Miembro
 
Registrado: ene 2004
Ubicación: Tacna - Perú
Posts: 138
Poder: 21
dape Va por buen camino
Talking Se resolvio el problema, gracias

¡Hola a todos! estoy feliz porque se resolvió el problema, lo que hize fue cambiar de herramienta de administración, usualmente uso el IBConsole que venía o viene con el Interbase, luego probé con el IBQuery y tampoco andaba, fue entonces cuando hize la pregunta al foro, pero me quede con la duda de que mi viejo IBconsole sea el problema así que descargué e instalé el trial del IBExpert y adivinen que pasó, ¡aceptó el SP! ¡qué alegría!, ahora veo que tengo que dejar a mi viejo y querido IBConsole como dice la canción: "...todo tiene su final, nada dura para siempre, tenemos que recordar que no existe eternidad..."; gracias mil por la ayuda brindada.

Una cosita más, sobre el coalesce ¿el valor que me devuelve se almacena en algún lugar? es decir, ¿cómo se utiliza?.

Gracias otra vez y buscare algo sobre esa función y la lista de las demás para conocer aprender algo más.

Saludos desde Tacna - Perú

David
Responder Con Cita
  #7  
Antiguo 18-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Ahora habría que probar si el SP (Store Procedure) funciona correctamente. De hecho, veo raro que antes del último end no haya un Suspend, al no haberlo, no creo que devuelva nada.

para usar el SP solo tienes que poner una consulta con su Sql := 'select id_dpto from maxdpto'

Tanto si usas el Coalesce como el Store procedure, el resultado es el mismo, una consulta de una sola fila y con una sola columna. Puedes poner un DBedit, o Grid asociado a él para ver el resultado.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 18-10-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Si puedes lees es un funcion.
Y no pregustes tantas estupideces.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #9  
Antiguo 19-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por rastafarey
(...) Y no pregustes tantas estupideces.
Creo que ese comentario está demás rastafarey. Lo atribuyo a un mal momento, por los cuales todos pasamos, me temo. No estaría nada mal que te disculparas con dape, creo que eso demostraría que eres sabio, por rectificar, y para mí tengo que dape comprendería que te hubieras excedido en este caso, pero que no es así como sueles responder, seguramente. No temas rectificar y piensa en la firma de alguno de nuestros compañeros: "el que comete un fallo y no rectifica comete otro fallo". Debe ser una cita de Confucio, por lo menos.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #10  
Antiguo 19-10-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Disculpeme por la forma.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #11  
Antiguo 19-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por rastafarey
Disculpeme por la forma.
Muchas gracias, en lo que a mí toca rastafarey. No esperaba menos de ti.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #12  
Antiguo 20-10-2005
dape dape is offline
Miembro
 
Registrado: ene 2004
Ubicación: Tacna - Perú
Posts: 138
Poder: 21
dape Va por buen camino
Talking

Todo bien, compañeros como siempre.

Saludos desde Tacna - Perú

David
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 10:19:40.


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