[Interest] Did the bound value handling changed in 5.x? If yes, why?

Constantin Makshin cmakshin at gmail.com
Fri May 24 06:14:30 CEST 2013


Looking at the related Qt source code gives another idea: in 4.8 when you
passed the statement string to QSqlQuery constructor, it tried to execute
the query, failed due to placeholders making the statement syntactically
incorrect (but lack of error checks in your code hid the problem), and then
performed the actual execution in exec(). So it's probably not as
coincidental as I thought but still undocumented and therefore fragile, 5.1
just fixed that.
On May 24, 2013 7:45 AM, "Constantin Makshin" <cmakshin at gmail.com> wrote:

> http://qt-project.org/doc/qt-4.8/qsqlquery.html#QSqlQuery-2 says the
> constructor you used executes the query passed to it.
>
> http://qt-project.org/doc/qt-4.8/qsqlquery.html#bindValue says it's meant
> to be used with prepared queries.
>
> So my opinion is that the fact that the code you used in Qt 4 worked is
> purely a coincidence showing unintended/undocumented behavior.
> On May 23, 2013 1:31 AM, "Guido Seifert" <wargand at gmx.de> wrote:
>
>>
>> I am wondering.
>> I have a program, which runs perfectly fine with Qt 4.8.
>> In dozens of places I do:
>> QString queryString = "SOME SQL STATEMENT with :foo;";
>> QSqlQuery query(queryString, database);
>> query.bindValue(":foo", xxxxxx);
>> query.exec();
>>
>> Now I tried to compile the program with Qt 5.1. Compiles fine,
>> but the database stuff is totally broken. Above value binding
>> does not seem to work anymore.
>>
>> Now I have to do:
>> QString queryString = "SOME SQL STATEMENT with :foo;";
>> QSqlQuery query(database);
>> query.prepare(queryString);
>> query.bindValue(":foo", xxxxxx);
>> query.exec();
>>
>>
>> Not too difficult to change, but WHY?
>>
>> Guido
>>
>>
>> --
>> Guido Seifert <wargand at gmx.de>
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/interest
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20130524/2a308cd6/attachment.html>


More information about the Interest mailing list