Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema procedimiento

Estas en el tema de Problema procedimiento en el foro de Mysql en Foros del Web. Buenas, nose si es mas correcto aqui o en oracle, asi que he hecho copia en los dos hilos. Tengo un problemilla. Necesito crear un ...
  #1 (permalink)  
Antiguo 11/12/2009, 07:52
 
Fecha de Ingreso: noviembre-2009
Mensajes: 13
Antigüedad: 14 años, 5 meses
Puntos: 0
Problema procedimiento

Buenas, nose si es mas correcto aqui o en oracle, asi que he hecho copia en los dos hilos.
Tengo un problemilla. Necesito crear un procedimiento que depende el codigo de receta que introduzcamos, borre los ingredientes clasificados como carne, siempre y cuando no haya otro ingrediente dentro de la misma receta clasificado como fruta o verdura.

El problema que tengo en el procedimiento, es como hago para eliminar los ingredientes, donde debo poner la sentencia para eliminar el ingrediente? dentro del bucle? dentro del if??
El codigo para eliminar el ingrediente carn seria el siguiente:
Delete from ingr_recpt
where codi_ingr in (select codi_ingr
from ingredients
where classificacio='Carn')

Para buscar si hay algun ingrediente carn y si en la misma receta esta la fruta o verdura, lo tendria que hacer con un if , etc etc, no?

Una ayudita, gracias ;)

P.D El otro problema que tengo es hacer la sentencia if para buscar las recetas con carne y ademas que no tengan fruta o verdura...Como lo harias..de momento el codigo lo tengo asi:
FOREACH cursorClassificacio FOR
SELECT codi_ingr,nom_ingr INTO zCodi_ingr, zNomIngr FROM ingredients

SELECT classificacio INTO zClassificacio
FROM ingredients I, ingr_recp IG
Where I.codi_ingr = IG.codi_ingr
AND IG.codi_rec= R.codi_rec

Hasta aqui busca con el bucle for las classificaciones de la receta
Y el if que esta mal pk no se como hacerlo.
IF zClassificacio = 'Carn'
ELSIF zClassificacio !='Fruita' or 'Verdura'
  #2 (permalink)  
Antiguo 11/12/2009, 07:56
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema procedimiento

Cita:
Buenas, nose si es mas correcto aqui o en oracle
Empieza por aclararnos un punto: ¿Qué DBMS estás por usar?
Pergunto eso porque la sintaxis de los stored procedures cambia drásticamente si usas MySQL, Oracle, DB2, Postgre, SQL Server o lo que sea que uses. No son compatibles y la migración puede ser ardua.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/12/2009, 08:47
 
Fecha de Ingreso: noviembre-2009
Mensajes: 13
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema procedimiento

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Empieza por aclararnos un punto: ¿Qué DBMS estás por usar?
Pergunto eso porque la sintaxis de los stored procedures cambia drásticamente si usas MySQL, Oracle, DB2, Postgre, SQL Server o lo que sea que uses. No son compatibles y la migración puede ser ardua.
...estoy utilizando INFORMIX -_-'' pero los procedimientos son "parecidos"...necesito solo una guia o algun consejo para realizar la tarea...el resto ya me encargare yo para que salga correctamente...
en mis primeros posts ocurria algo parecido...quien me contestaba, respondia como mysql y yo lo aplicaba a mi necesidad esa ayuda para que funcionara en informix.

Se que es una mierda informix.....pero la uni es la uni -_-''.

El problema que tengo es ese: Buscar los ingredientes de carne en las recetas y eliminar ese ingrediente y si en esa receta misma hay algun ingrediente tipo fruta o verdura, no se elimina el ingrediente carne....
Es algo raro.... y no me sale :(. De momento he hecho esto:

Código SQL:
Ver original
  1. IF zClassificacio = 'Carn' THEN
  2.         LET zExist_Carn= "t";
  3.         IF zClassificacio !='Fruita' OR 'Verdura' THEN
  4.         Let zExist_FV= "t";
  5.         DELETE FROM ingr_recpt
  6.         WHERE codi_ingr IN (SELECT codi_ingr
  7.         FROM ingredients
  8.         WHERE classificacio='Carn');
  9.  
  10.         END IF
  11.     END IF

El procedimiento compila...pero luego peta cuando lo ejecuto -_-''
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:17.