[Interest] SQLite: mystic bug: No query Unable to fetch row error

Tony Rietwyk tony at rightsoft.com.au
Fri Jan 15 00:55:35 CET 2021


Hi,

I haven't used SQLite, but I'm wondering if when the UuidByteArray 
starts with a zero byte, then maybe nothing gets written for the value?  
1 in 16 of the generated UUID's could have this, which roughly matches 
your 4% failures.

Is a BLOB field binary or text?  Does a binary blob with embedded zeroes 
always get fully written?  Maybe using base64 encoding would work better?

Hope that helps,


On 15/01/2021 2:18 am, Alexander Dyagilev wrote:
> Hello,
>
> Each instance of our app is supposed to have an unique id (UUID).
>
> At every start, it check if it has assigned one, and if not - 
> generates it and saves it to the SQLite database.
>
> We've found, that 4% of ours users has empty UUIDs.
>
> We've added some diagnostic reporting info and found, that this is 
> caused by SQLite database not being able to write generated UUID to it.
>
> QSqlQuery::exec returns false and its last error returns this error 
> "No query Unable to fetch row error".
>
> How can this be? I could not find any problems working with the 
> database in our code.
>
> We do it so:
>
> 1. Make sure the table exists:
>
> "CREATE TABLE IF NOT EXISTS miscData (Name TEXT, Value BLOB, PRIMARY 
> KEY (Name))"
>
> 2. Write value to the table:
>
> QSqlQuery query(m_db);
> query.prepare("REPLACE INTO miscData (Name, Value) VALUES (:Name, 
> :Value)");
> query.bindValue(":Name", "UUID");
> query.bindValue(":Value", UuidByteArray);
>
> if (!query.exec())
> {
>      // here we're getting this error....
> }
>
> What are the possible reasons of this error?
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://lists.qt-project.org/listinfo/interest


More information about the Interest mailing list