
11/05/2010, 21:47
|
 | Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 meses Puntos: 2658 | |
Respuesta: No sé cual es el error, desconozco como se declara No se entiende bien qué es lo que pretendes hacer con esto: Cita:
Iniciado por Jona_than Estimados,
Mi problema es en el SET PasoIf = "SELECT MAX(IDHOSPEDAJE) FROM HOSPEDAJE";
¿Como se define de manera correcta esto?
Código MySQL:
Ver originalCREATE PROCEDURE `InsertarInscrito`(IN NombreHospedaje varchar(250),IN TelefonoHospedaje varchar(250),IN IdComuna int,IN NombresInscrito varchar(250),IN ApellidosInscrito varchar(250),IN EdadInscrito int,IN CodAreaInscrito int,IN TelefonoRFInscrito int,IN TelefonoMInscrito varchar(250),IN EmailInscrito varchar(250),IN HospedajeInscrito bool,IN CongregacionInscrito varchar(250),IN NombrePInscrito varchar(250),IN EmailPInscrito varchar(250),IN TelefonoPInscrito varchar(250),IN CoyuLiderInscrito varchar(250),IN EmailCLInscrito varchar(250),IN TelefonoCLInscrito varchar(250)) SET PasoIf = "SELECT MAX(IDHOSPEDAJE) FROM HOSPEDAJE"; INSERT INTO INSCRITO VALUES (PasoIf ,IdComuna ,NombresInscrito ,ApellidosInscrito ,EdadInscrito ,CodAreaInscrito ,TelefonoRFInscrito ,TelefonoMInscrito ,EmailInscrito ,HospedajeInscrito ,CongregacionInscrito ,NombrePInscrito ,EmailPInscrito ,TelefonoPInscrito ,CoyuLiderInscrito ,EmailCLInscrito ,TelefonoCLInscrito ); SET PasoIfDos = "SELECT MAX(IDINSCRITO) FROM INSCRITO"; INSERT INTO INSCRITO VALUES (IdComuna ,NombresInscrito ,ApellidosInscrito ,EdadInscrito ,CodAreaInscrito ,TelefonoRFInscrito ,TelefonoMInscrito ,EmailInscrito ,HospedajeInscrito ,CongregacionInscrito ,NombrePInscrito ,EmailPInscrito ,TelefonoPInscrito ,CoyuLiderInscrito ,EmailCLInscrito ,TelefonoCLInscrito ); SET PasoElse = "SELECT MAX(IDINSCRITO) FROM INSCRITO";
Saludos. Vamos por partes:
1) Las comillas (") se usan para encerrar las denominaciones de campos, tablas, bases, procedimientos, triggers, funciones, y cualquier objeto de la base de datos, de la misma forma que el acento grave (`). No te sirve en este contexto y te generará un error de sintaxis, porque no hay ninguna columna denominada "SELECT MAX(IDINSCRITO) FROM INSCRITO".
2) No se comprende lo que quieres hacer al ejecutar
Código MySQL:
Ver originalSET PasoIf = "SELECT MAX(IDHOSPEDAJE) FROM HOSPEDAJE";
más allá de que te dará un error de sintaxis, como ya te dije, ni para qué parece que lo quisieras guardar en la misma tabla.
3) No se entiende por qué tienes tres tablas para definir diferentes estados de un registro, cuando eso se puede controlar con un sólo campo, ni cómo evitaras los problemas de consistencia de datos en el futuro, al tener registros idénticos repartidos en esas tablas.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |