<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello Matthias,<br>
    <br>
    thanks for the quick reply! I access the database from the QML/JS
    domain. To open a connection I use the following function:<br>
    <br>
    function instance()<br>
    {<br>
        var db = Storage.LocalStorage.openDatabaseSync("Db", "",
    "Nodes", 5000000);  /* DB Size: 5MB */<br>
        db.transaction(function(tx) {<br>
            tx.executeSql("PRAGMA foreign_keys = ON;");<br>
        });<br>
        return db<br>
    }<br>
    <br>
    The following test function<br>
    <br>
    function queryForeignKeysEnabled()<br>
    {<br>
        instance().transaction(function(tx) {<br>
            var rs = tx.executeSql("PRAGMA foreign_keys;");<br>
            console.log(JSON.stringify(rs.rows.item(0)))<br>
        });    <br>
    }<br>
    <br>
    returns <br>
    <br>
    <span style=" font-family:'Monospace'; font-size:9pt;
      color:#aa0000;">{"foreign_keys":0}.<br>
      <br>
    </span>Can you map this implementation to your C++ code and tell the
    difference?<br>
    <br>
    Cheers,<br>
    Thomas<br>
    <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><!--EndFragment--></p>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
    <style type="text/css">
p, li { white-space: pre-wrap; }
</style><br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 24.08.2016 13:54, Matthias Fehring
      wrote:<br>
    </div>
    <blockquote
      cite="mid:8792620.qa8RrbD8vY@buschmaschine.hitronhub.home"
      type="cite">
      <pre wrap="">Hello Thomas,

for me foreign key support is working. Directly after establishing the 
connection to the SQLite database (QSqlDatabase::open()) I use QSqlQuery to 
execute "PRAGMA foreign_keys = ON".

I think you have to do it every time you open a closed database, so I 
implemented it in my database connection methods that it is executed if the 
database connection was closed before.

Best greetings
Matthias


Am Mittwoch, 24. August 2016, 12:39:04 CEST schrieb TE:
</pre>
      <blockquote type="cite">
        <pre wrap="">Hello fellow devs,

I have two SQLite tables. The second table references a key from the
first table as foreign key. Now when I delete a row in the first table I
want all rows from the second table referencing the deleted key to be
deleted as well. For this the action ON DELETE CASCADE seems to be
appropriate. Unfortunately this doesn't work and the corresponding rows
in the second table are *not* deleted.

Here are the table definitions:

First table:
CREATE TABLE IF NOT EXISTS NodeMetaData (id INTEGER PRIMARY KEY,
parentId INTEGER);

Second table:
CREATE TABLE IF NOT EXISTS NodeConcreteData (refId INTEGER NOT NULL,
FOREIGN KEY(refId) REFERENCES NodeMetaData(id) ON DELETE CASCADE);

In the sqlite docs, it is mentioned that foreign key support has to be
acitvated. So I tried tx.executeSql("PRAGMA foreign_keys = ON;"). But
the query tx.executeSql("PRAGMA foreign_keys;") returns 0.

When I recreate the scenario in an interactive SQLite session, the above
works (PRAGMA foreign_keys = ON has to be executed).

Any ideas?
Is the SFOS Qt lib compiled with foreign key support?
What am I missing?

Many thanks in advance!
Thomas
_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to <a class="moz-txt-link-abbreviated" href="mailto:devel-unsubscribe@lists.sailfishos.org">devel-unsubscribe@lists.sailfishos.org</a>
</pre>
      </blockquote>
      <pre wrap="">

</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to <a class="moz-txt-link-abbreviated" href="mailto:devel-unsubscribe@lists.sailfishos.org">devel-unsubscribe@lists.sailfishos.org</a></pre>
    </blockquote>
    <br>
  </body>
</html>