Ver Mensaje Individual
  #10 (permalink)  
Antiguo 30/06/2008, 18:55
Avatar de gnzsoloyo
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: proedimientos almacenados para mysql5

Luego de ver el código posteado, no encuentro errores evidentes, por lo que si es el que estás ejecutando no debería generar problemas... salvo un detalle.
Suponiendo que ingresas todos los valores correctamente, y que el SP está correctamente escrito ahora (recordando que había que incluir el campo "mutual" en el INSERT), solamente puedo suponer una de varias posibilidades que generen error:
1) Los campos FOREIGN KEY hacen, obviamente referencia a campos clave de sendas tablas. ¿Te aseguraste que esos valores YA ESTÉN CARGADOS en sus tablas ANTES de insertar este registro? Es un error muy común al comenzar a trabajar con tablas referenciales. Las tablas primarias (las que no hacen referencia a otras) deben estar cargadas antes de las secundarias, o no te permitirá cargar la secundaria (las que tienen campos FK).

2) En las parametrizaciones es posible que el nombre del parámetro requiera el uso de "@" o "?" antes del nombre, aunque en el prototipo del SP no se encuentren escritos. Esto es, algo así:
Código:
ingresa.Parameters["?rut_empresa"].Direction = ParameterDirection.Input;
o bien:
Código:
ingresa.Parameters["@rut_empresa"].Direction = ParameterDirection.Input;
3) Los campos de tipo fecha, si se ingresan en forma de string, requieren un formato específico (aaaa-mm-dd), ya que es el formato que MySQL maneja. Si quieres que el ODBC se encargue de la conversión, la variable fecha_constitucion DEBE SER de tipo DateTime, o Date. También debes recordar que el ODBC por default no puede manejar fechas nulas (NULL), sino debe ser configurado para eso.

Un tip final sería: El C# en Visual Studio cuenta con una clase MsgBx y otra MessageBox. Generan una ventana de mensaje configurable que puedes usar para que te muestre la propiedad Message que estás capturando en la variable exc del catch. Usala para visualizar el mensaje que está devolviendo ODBC. Eso te dirá claramente cuál es el error.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)