Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. 3rd Party Software
  4. SQLite database locked on localstorage example
Forum Updated to NodeBB v4.3 + New Features

SQLite database locked on localstorage example

Scheduled Pinned Locked Moved Unsolved 3rd Party Software
6 Posts 3 Posters 1.0k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    filipdns
    wrote on last edited by
    #1

    Hi,

    Trying to use localstorage example, the database is locked with:

    function dbInit()
    {
        var db = LocalStorage.openDatabaseSync("Activity_Tracker_DB", "", "Track exercise", 1000000)
        try {
    
            db.transaction(function (tx) {
                tx.executeSql('CREATE TABLE IF NOT EXISTS trip_log (date text,trip_desc text,distance numeric)')
            })
    
        } catch (err) {
            console.log("Error creating table in database: " + err)
        };
    }
    
    function dbGetHandle()
    {
        try {
            var db = LocalStorage.openDatabaseSync("Activity_Tracker_DB", "",
                                                   "Track exercise", 1000000)
        } catch (err) {
            console.log("Error opening database: " + err)
        }
        return db
    }
    
    function dbInsert(Pdate, Pdesc, Pdistance)
    {
        var db = dbGetHandle()
        var rowid = 0;
        db.transaction(function (tx) {
            tx.executeSql('INSERT INTO trip_log VALUES(?, ?, ?)',
                          [Pdate, Pdesc, Pdistance])
            var result = tx.executeSql('SELECT last_insert_rowid()')
            rowid = result.insertId
        })
        return rowid;
    }
    
    function dbReadAll()
    {
        var db = dbGetHandle()
            db.transaction(function (tx) {var results = tx.executeSql(
                        'SELECT rowid,date,trip_desc,distance FROM trip_log order by rowid desc')
            for (var i = 0; i < results.rows.length; i++) {
                listModel.append({
                                     id: results.rows.item(i).rowid,
                                     checked: " ",
                                     date: results.rows.item(i).date,
                                     trip_desc: results.rows.item(i).trip_desc,
                                     distance: results.rows.item(i).distance
                                 })
            }
        })
    }
    

    How can I unlock the database?...
    May be with begin / commit but I don't know how.

    Thank you for your help
    Kind regards

    Philippe

    jsulmJ 1 Reply Last reply
    0
    • F filipdns

      Hi,

      Trying to use localstorage example, the database is locked with:

      function dbInit()
      {
          var db = LocalStorage.openDatabaseSync("Activity_Tracker_DB", "", "Track exercise", 1000000)
          try {
      
              db.transaction(function (tx) {
                  tx.executeSql('CREATE TABLE IF NOT EXISTS trip_log (date text,trip_desc text,distance numeric)')
              })
      
          } catch (err) {
              console.log("Error creating table in database: " + err)
          };
      }
      
      function dbGetHandle()
      {
          try {
              var db = LocalStorage.openDatabaseSync("Activity_Tracker_DB", "",
                                                     "Track exercise", 1000000)
          } catch (err) {
              console.log("Error opening database: " + err)
          }
          return db
      }
      
      function dbInsert(Pdate, Pdesc, Pdistance)
      {
          var db = dbGetHandle()
          var rowid = 0;
          db.transaction(function (tx) {
              tx.executeSql('INSERT INTO trip_log VALUES(?, ?, ?)',
                            [Pdate, Pdesc, Pdistance])
              var result = tx.executeSql('SELECT last_insert_rowid()')
              rowid = result.insertId
          })
          return rowid;
      }
      
      function dbReadAll()
      {
          var db = dbGetHandle()
              db.transaction(function (tx) {var results = tx.executeSql(
                          'SELECT rowid,date,trip_desc,distance FROM trip_log order by rowid desc')
              for (var i = 0; i < results.rows.length; i++) {
                  listModel.append({
                                       id: results.rows.item(i).rowid,
                                       checked: " ",
                                       date: results.rows.item(i).date,
                                       trip_desc: results.rows.item(i).trip_desc,
                                       distance: results.rows.item(i).distance
                                   })
              }
          })
      }
      

      How can I unlock the database?...
      May be with begin / commit but I don't know how.

      Thank you for your help
      Kind regards

      Philippe

      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #2

      @filipdns said in SQLite database locked on localstorage example:

      How can I unlock the database?...

      Maybe you need to close it?

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      F 1 Reply Last reply
      0
      • jsulmJ jsulm

        @filipdns said in SQLite database locked on localstorage example:

        How can I unlock the database?...

        Maybe you need to close it?

        F Offline
        F Offline
        filipdns
        wrote on last edited by
        #3

        @jsulm hello, may be but how to close db in js?...

        Following documentation, js transactions are suppose to automatically close db.

        Kind regards

        jsulmJ KroMignonK 2 Replies Last reply
        0
        • F filipdns

          @jsulm hello, may be but how to close db in js?...

          Following documentation, js transactions are suppose to automatically close db.

          Kind regards

          jsulmJ Offline
          jsulmJ Offline
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #4

          @filipdns Was just an idea, I'm not an JS expert :-)

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          F 1 Reply Last reply
          0
          • jsulmJ jsulm

            @filipdns Was just an idea, I'm not an JS expert :-)

            F Offline
            F Offline
            filipdns
            wrote on last edited by
            #5

            @jsulm oki thanks ;-)

            1 Reply Last reply
            0
            • F filipdns

              @jsulm hello, may be but how to close db in js?...

              Following documentation, js transactions are suppose to automatically close db.

              Kind regards

              KroMignonK Offline
              KroMignonK Offline
              KroMignon
              wrote on last edited by
              #6

              @filipdns said in SQLite database locked on localstorage example:

              Following documentation, js transactions are suppose to automatically close db.

              Why do you work on DB in JavaScript/QML?
              I think it will made more sense to do the DB work on C++ side and implement a QML/C++ interface to access to the data.
              JS/QML is powerful to create/handle user interface, but to work with data C++ is the better choice!

              It is an old maxim of mine that when you have excluded the impossible, whatever remains, however improbable, must be the truth. (Sherlock Holmes)

              1 Reply Last reply
              0

              • Login

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups
              • Search
              • Get Qt Extensions
              • Unsolved