none
Verificar guardado de datos en bb.dd mysql RRS feed

  • Pregunta

  • Hola buenas noches Foro.

    Señores, estoy creando una aplicación en vb.net, esta apps correrá en un entorno LAN; en la que tendré un servidor mysql y unos cuantos clientes con la aplicación instalada; en algun momento los clientes empezarán a enviar datos a traves de la LAN al demonio mysql.

    Mi consulta es: ¿como saber si los datos han sido guardados de forma íntegra en la bb.dd? y en caso contrario, ¿que debería hacer?
    No busco que me den el código, sino una explicación a grandes rasgos de como debería proceder.

    De antemano agradezco cualquier ayuda.


    Javier Teran F.


    miércoles, 24 de octubre de 2012 5:07

Respuestas

  • hola

    no se como es que estas realizando las actualizaciones, los clientes se conectan directo a la db, o usas algun servicio de intermediario?

    pero si has investigado un poco el MySqlCommand veras que el ExecuteNonQuery() retorna un valor, bien esta son las filas afectadas

    si haces

    int afectadas = cmd.ExecuteNonQuery();

    if(afectadas >0){

       MessageBox.Show("se registro la operacion");

    }

    si las filas afectadas es cero quiere decir que la ejecucion de la query no genero cambios

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Javier Teran F viernes, 26 de octubre de 2012 4:04
    miércoles, 24 de octubre de 2012 6:45

Todas las respuestas

  • En una base de datos transaccional, tal como mysql, siempre se garantiza que los datos han sido grabados de forma íntegra cuando el servidor contesta al cliente que ha aceptado la transacción. Desde el punto de vista de tu código, esto significa que si ejecutas por ejemplo una sentencia de tipo "Update mitabla set campo=valor" con un IDbCommand y el código pasa a ejecutar la siguiente línea sin haber producido una excepción, entonces se garantiza que los cambios realizados por esa sentencia han sido grabados. Con un pequeño matiz: si usas transacciones explícitas, entonces el momento en el que se garantiza la grabación de los cambios es cuando se ejecuta el Commit de la transacción sin devolver un error.

    miércoles, 24 de octubre de 2012 5:44
  • hola

    no se como es que estas realizando las actualizaciones, los clientes se conectan directo a la db, o usas algun servicio de intermediario?

    pero si has investigado un poco el MySqlCommand veras que el ExecuteNonQuery() retorna un valor, bien esta son las filas afectadas

    si haces

    int afectadas = cmd.ExecuteNonQuery();

    if(afectadas >0){

       MessageBox.Show("se registro la operacion");

    }

    si las filas afectadas es cero quiere decir que la ejecucion de la query no genero cambios

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Javier Teran F viernes, 26 de octubre de 2012 4:04
    miércoles, 24 de octubre de 2012 6:45
  • Alberto y Leandro, gracias por responder

    Alberto me lo habia imaginado asi; si pasa la linea de codigo mysqlcommand, todo ok sin embargo la respuesta de Leandro es un poco mas "controlable" en el sentido que puedo obtener un numero de error, con lo cual podria llevar a cabo alguna accion correctiva
    Muchachos agradezco sus repuestas: rapidas y precisas

    Pregunta resuelta


    Javier Teran F.

    viernes, 26 de octubre de 2012 4:04