Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-09-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Ayuda con un Stored Procedure en MySQL

Hola compañeros, tengo este procedimiento:

Código SQL [-]
CREATE PROCEDURE sp_Consped
(
OUT S_No bigint(11),
OUT S_noped varchar(10),
OUT S_status varchar(100),
OUT S_respon varchar(100),
OUT S_fecharec date,
OUT S_fechaent date,
OUT S_Dpto varchar(100),
OUT S_tramiteno varchar(20),
OUT S_Area varchar(50),
OUT S_tipo varchar(20),
OUT S_urgente varchar(2),
OUT S_ficha varchar(15),
OUT S_fechasol date,
OUT S_solname varchar(100),
OUT S_hora1 varchar(25),
OUT S_User varchar(50),
OUT S_Dateuser date,
OUT S_Dptoid INT,
OUT S_Rubroid INT,
OUT S_Rubro varchar(100),
OUT S_Responid INT,
OUT S_Statusid INT,
OUT S_Hora varchar(25),
OUT S_Respon1 varchar(100)
)
BEGIN
/*Muestra los registros*/

Select p.no, p.no_ped, p.status, p.statusid, p.responsable, p.responsable1, p.fecha_sol_ped,
p.dpto, p.dptoid, p.fecha_rec_ped, p.tipo_exp, p.descripcion, p.fecha_ent_exp, p.tramite_no,
p.area, p.urgente, p.ficha, p.sol_name, p.hora, p.hora1, p.user, p.date, p.rubroid, p.responid
INTO S_No, S_noped, S_status, s_Statusid, S_Respon, S_Respon1, S_fechasol, S_Dpto, S_Dptoid, S_fecharec,
S_tipo, S_Rubro, S_fechaent, S_tramiteno, S_Area, S_urgente, S_ficha, S_solname, S_Hora, S_hora1, S_User,
S_Dateuser, S_Rubroid, S_Responid from reg_pedidos p; 

END;

Al generarlo a través de PhpAdmin me tira el error:

Cita:
MySQL ha dicho:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 36
¿Me está indicando que debo poner comillas? de veras no encuentro el problema o ¿es que debo generarlo en la linea de comando?

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #2  
Antiguo 09-09-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Checa esta línea:

Código SQL [-]
p.area, p.urgente, p.ficha, p.sol_name, p.hora, p.hora1, p.user, p.date, p.rubroid, p.responid

Si te fijas estás usando user y date, las cuales son dos palabras reservadas de SQL. Intenta encerrandolas entre comillas dobles: p."user", p."date".


Saludos...
Responder Con Cita
  #3  
Antiguo 09-09-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por maeyanes Ver Mensaje
Hola...

Checa esta línea:

Código SQL [-]p.area, p.urgente, p.ficha, p.sol_name, p.hora, p.hora1, p.user, p.date, p.rubroid, p.responid


Si te fijas estás usando user y date, las cuales son dos palabras reservadas de SQL. Intenta encerrandolas entre comillas dobles: p."user", p."date".


Saludos...
Cita:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"user"', p.'"date"', p.rubroid, p.responid
INTO S_No, S_noped, S_status, s_Sta' at line 33
Esto me salió.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 09-09-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Aparentemente no son esos campos, porque los quité y me da el mismo error. ¿Qué leñes será? , es la primera vez que estoy trabajando con SP, ¿es posible que hay usar comillas ``, "" ó ''?.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #5  
Antiguo 09-09-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Hola

Dos cosas amigo, porque usas p.xxxxxx si no estas usando mas que una sola tabla, la otra es que pasa si usas comilla simple en lugar de comillas.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 09-09-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Hola

Dos cosas amigo, porque usas p.xxxxxx si no estas usando mas que una sola tabla, la otra es que pasa si usas comilla simple en lugar de comillas.

Salud OS
Bueno lo primero son cosas mías por novatadas , lo segundo me da el mismo error.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #7  
Antiguo 09-09-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
No conozco los procedimiento almacenados de MySQL, pero supongo que deberia quedar asi:

Código SQL [-]
CREATE PROCEDURE sp_Consped
(
OUT S_No bigint(11),
OUT S_noped varchar(10),
OUT S_status varchar(100),
OUT S_respon varchar(100),
OUT S_fecharec date,
OUT S_fechaent date,
OUT S_Dpto varchar(100),
OUT S_tramiteno varchar(20),
OUT S_Area varchar(50),
OUT S_tipo varchar(20),
OUT S_urgente varchar(2),
OUT S_ficha varchar(15),
OUT S_fechasol date,
OUT S_solname varchar(100),
OUT S_hora1 varchar(25),
OUT S_User varchar(50),
OUT S_Dateuser date,
OUT S_Dptoid INT,
OUT S_Rubroid INT,
OUT S_Rubro varchar(100),
OUT S_Responid INT,
OUT S_Statusid INT,
OUT S_Hora varchar(25),
OUT S_Respon1 varchar(100)
)
BEGIN
/*Muestra los registros*/

Select p.no, p.no_ped, p.status, p.statusid, p.responsable, p.responsable1, p.fecha_sol_ped,
p.dpto, p.dptoid, p.fecha_rec_ped, p.tipo_exp, p.descripcion, p.fecha_ent_exp, p.tramite_no,
p.area, p.urgente, p.ficha, p.sol_name, p.hora, p.hora1, p.user, p.date, p.rubroid, p.responid
from reg_pedidos p
INTO S_No, S_noped, S_status, s_Statusid, S_Respon, S_Respon1, S_fechasol, S_Dpto, S_Dptoid, S_fecharec,
S_tipo, S_Rubro, S_fechaent, S_tramiteno, S_Area, S_urgente, S_ficha, S_solname, S_Hora, S_hora1, S_User,
S_Dateuser, S_Rubroid, S_Responid; 

END;

Cita:
Empezado por enecumene Ver Mensaje
Bueno lo primero son cosas mías por novatadas
En cuanto a esto, debo confesar que tambien lo hago muy a menudo, pero es porque en muchas ocasiones necesito extendender el SQL un poco mas, de esa forma me evito posibles inconvenientes de una vez por todas.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #8  
Antiguo 09-09-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Pues me hace lo mismo amigo Jhonny, siempre es en la línea 35, 36, parece que hay que usar '' pero no lo entiendo de verdad.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #9  
Antiguo 09-09-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Lo que he leido al respecto indica que deberias de usar el delimitador ``. Otra cuestión tal vez a manera de chapuza , estás haciendo un select de todos los campos de tu tabla????, si es así, porque no usar

Código SQL [-]
SELECT * FROM TABLA
INTO .........

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #10  
Antiguo 09-09-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por enecumene Ver Mensaje
Pues me hace lo mismo amigo Jhonny, siempre es en la línea 35, 36, parece que hay que usar '' pero no lo entiendo de verdad.

Saludos.
Para mi que debe ser lo que ya ha dicho maeyanes, user y date, deben ser palabras reservadas.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #11  
Antiguo 09-09-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
¡Me rindo!
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #12  
Antiguo 09-09-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Lo que he leido al respecto indica que deberias de usar el delimitador ``. Otra cuestión tal vez a manera de chapuza , estás haciendo un select de todos los campos de tu tabla????, si es así, porque no usar

Código SQL [-]SELECT * FROM TABLA INTO .........


Salud OS
No amigo, no son todos los campos que quiero mostrar.

Cita:
Empezado por jhonny Ver Mensaje
Para mi que debe ser lo que ya ha dicho maeyanes, user y date, deben ser palabras reservadas.
Había comentado anteriormente que los había quitado y me presentaba el mismo error.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #13  
Antiguo 09-09-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por enecumene Ver Mensaje
Había comentado anteriormente que los había quitado y me presentaba el mismo error.

Saludos.
¿Cuando los quitaste, Te aseguraste tambien de quitar la referencia a las variables de salida?, osea, S_User, S_Dateuser
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #14  
Antiguo 09-09-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Amigo

En Firebird, los parámetros de salida los tengo que asignar con ':' antes del parámetro, de tal forma que sería algo así....

Código SQL [-]
INTO :S_No, :S_noped, :S_status, :s_Statusid, :S_Respon, :S_Respon1, .....

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #15  
Antiguo 09-09-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por jhonny Ver Mensaje
¿Cuando los quitaste, Te aseguraste tambien de quitar la referencia a las variables de salida?, osea, S_User, S_Dateuser
Sip, los había quitado.

Saludos.

PD. me da la impresión de que deberé hacerlo por comando (Cosa que odio ).
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #16  
Antiguo 09-09-2008
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 16
TOPX Va camino a la fama
Hola,
  1. Podría ser el delimiter:

    Código SQL [-]
    DELIMITER //
     
    CREATE PROCEDURE sp_Consped(
     /* ... */
    )
    BEGIN
     /* ...; */
    END //
     
    DELIMITER ;
  2. Si define el montón de parámetros OUT es porque guardará sus valores en @variables, pero si sólo va a retornar los registros del select, casi estoy seguro no harían falta los parámetros.
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #17  
Antiguo 09-09-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Amigo

En Firebird, los parámetros de salida los tengo que asignar con ':' antes del parámetro, de tal forma que sería algo así....

Código SQL [-]INTO :S_No, :S_noped, :S_status, :s_Statusid, :S_Respon, :S_Respon1, .....


Salud OS
Cita:
MySQL ha dicho:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':S_No, :S_noped, :S_status, :S_Statusid, :S_Respon, :S_Respon1, :S_fechasol, :S_' at line 34
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #18  
Antiguo 09-09-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por TOPX Ver Mensaje
Hola,
  1. Podría ser el delimiter:

    Código SQL [-]DELIMITER //

    CREATE PROCEDURE sp_Consped(
    /* ... */
    )
    BEGIN
    /* ...; */
    END //

    DELIMITER ;
  2. Si define el montón de parámetros OUT es porque guardará sus valores en @variables, pero si sólo va a retornar los registros del select, casi estoy seguro no harían falta los parámetros.
Pues parece que tampoco es el delimiter:

Cita:
MySQL ha dicho:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER //

CREATE PROCEDURE sp_Consped
(
OUT S_No bigint(11),
OUT S_nope' at line 1
Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #19  
Antiguo 09-09-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 18
felipe88 Va por buen camino
Hola, Tampoco conozco MySQL pero como dice jhonny ¿no te funciona? no hay que darle return o algo por el estilo, podrias mirar en este articulo a ver...
__________________
Web
Responder Con Cita
  #20  
Antiguo 09-09-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por felipe88 Ver Mensaje
Hola, Tampoco conozco MySQL pero como dice jhonny ¿no te funciona? no hay que darle return o algo por el estilo, podrias mirar en este articulo a ver...
Efectivamente ese es el artículo que he estado viendo y que no lo he entendido del todo, por eso puse este hilo aquí.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
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
Problema con Zeos + Stored Procedure+ MySql makina Conexión con bases de datos 4 18-02-2017 04:04:29
Ayuda con Stored Procedure Fita Firebird e Interbase 2 28-11-2007 01:28:03
stored procedure con mysql y delphi 7 didier Internet 2 13-10-2006 03:36:38
Ayuda con Stored Procedure Sudamericano Firebird e Interbase 13 09-06-2004 01:26:32
Ayuda con Stored Procedure tgsistemas SQL 2 30-03-2004 23:30:40


La franja horaria es GMT +2. Ahora son las 05:07:56.


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