Good way to multiple access SQL



  • Hi,
    Sorry if my question is too simple but I ask me what is the good way to multiple access SQL.

    My Qt software:
    1- Load data in class and display in widget
    2- User can changes data and Update SQL through the class.
    Ok simple!

    But in multiple access case:
    1- USER 1 Load data in class and display in widget
    2- USER 2 Load data in class and display in widget
    3- USER 1 makes some data changes and Update SQL through the class.
    4- USER 2 makes some data changes and Update SQL through the class.
    -> Error: the changements of USER 1 are erased by USER 2 without message or other.

    How to do this ? Thanks



  • In the case of SQLITE or MYSQL ?



  • If all users access the database only through your application you can have them notify one another of changes via QTcpSocket otherwise before submitting any change you need to perform a select and check that the value was not altered in the meantime



  • Check out QSqlDriver's notification capability. From personal experience it works well with Postgresql. I would assume that it works with MySQL, perhaps even SQLite. It is dependent on the driver implementation though.

    Mike



  • check hasFeature() but I doubt SQLite has QSqlDriver::EventNotifications



  • qDebug() << "driver EventNotifications: " << sdlDrv->hasFeature(QSqlDriver::EventNotifications);
    

    -> driver EventNotifications: false

    Arf, so I must make it manually ? by QTcpSocket or internally by an flag ?



  • I'm afraid so


  • Qt Champions 2017

    Use the original data as a where clause for the update statement. This way if the data has changed in the meantime you can know, and show a message to the user, even suggest him a reload.



  • @kshegunov This, complicates the SQL requests...


  • Qt Champions 2017

    @cfdev
    That may be, but guarantees consistency! In any case there isn't another reliable way to do it, beside writing your own application server.



  • Ok, many thanks at All!


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.