none
como manejar enum, bool , hora y text en procedimientos almacenados MYSQL ? RRS feed

  • Pregunta

  • Hola a todos..
    para hacer el manejo del tipo de tados mencionados es correcta la siquiente sintaxis ?
    Tomando en cuenta que row["valor"] es de tipo string.
    no me muestra errores pero en estos casos el StoredProcedure no captura los datos enviados.
    espero su ayuda, de antemano Gracias...

                           case "bool":
                                      _comando.Parameters.Add(campo, MySqlDbType.Enum).Value = Convert.ToBoolean(row["valor"]);
                             break;
                             case "enum":
                                     _comando.Parameters.Add(campo, MySqlDbType.Enum).Value = Convert.ToString(row["valor"]);
                             break;
                             case "text":
                                     _comando.Parameters.Add(campo, MySqlDbType.Text).Value = Convert.ToString(row["valor"]);
                             break;
                             case "time":
                                     _comando.Parameters.Add(campo, MySqlDbType.Time).Value = Convert.ToDateTime(row["valor"]);
                             break;
    miércoles, 25 de abril de 2012 16:21

Respuestas

  • La verdad en Mysql, la arroba ( @ ) como prefijo para declarar los parámetros en tus rutinas es opcional,

    Pudes usarlo o no !, sin embargo te recomiendo hacerlo para que tus procedimientos sean mas estándares o se parezcan mas a otros lenguajes de consulta como Microsoft SQL server, donde la arroba si es obligatoria en la declaración de parámetros y te ahorrarías buen tiempo en un caso de migración de motor de base de datos ... 


    Un saludo, Cristian Pérez


    • Editado Cristian Pérez viernes, 15 de junio de 2012 17:33
    • Marcado como respuesta hqmlldwg miércoles, 20 de junio de 2012 16:39
    viernes, 15 de junio de 2012 17:32

Todas las respuestas

  • Algunos detalles a tener en cuenta

    - Cuando uses el boolean usa MySqlDbType.Enum

    - Supongo que campo será el nombre del campo que querrás usar, pero asegúrate que debe empezar por ?


    Atentamente, Sergio.

    Blog
    Twitter

    miércoles, 25 de abril de 2012 19:05
  • Hola,

    Tienes el código donde estas definiendo los parámetros en la rutina o procedimiento almacenado en Mysql ??

    Un saludo,


    Cristian Perez.

    miércoles, 9 de mayo de 2012 22:53
  • existe algun diferencia en declarar y/o llamar al procedimiento almacenado usando @ ?

    MyProcedure(@MyParam1, @MyParam2);";

    cmd.Parameters.AddWithValue("@MyParam1", 123);

    que sucede si no uso @ ?

    viernes, 15 de junio de 2012 16:33
  • La verdad en Mysql, la arroba ( @ ) como prefijo para declarar los parámetros en tus rutinas es opcional,

    Pudes usarlo o no !, sin embargo te recomiendo hacerlo para que tus procedimientos sean mas estándares o se parezcan mas a otros lenguajes de consulta como Microsoft SQL server, donde la arroba si es obligatoria en la declaración de parámetros y te ahorrarías buen tiempo en un caso de migración de motor de base de datos ... 


    Un saludo, Cristian Pérez


    • Editado Cristian Pérez viernes, 15 de junio de 2012 17:33
    • Marcado como respuesta hqmlldwg miércoles, 20 de junio de 2012 16:39
    viernes, 15 de junio de 2012 17:32
  • Lo tomaré en cuenta.
    Gracias.

    viernes, 15 de junio de 2012 18:23