Советую сразу обратить внимание на bindValue в QSqlQuery. Когда запросы усложнятся и будут содержать спец.символы, просто так застрелишься экранировать, а через bindValue эта проблема отпадает.
Вот пример из
http://habrahabr.ru/post/51650/так
QSqlQuery query;
query.prepare("INSERT INTO employee (id, name, salary) "
"VALUES (:id, :name, :salary)");
query.bindValue(":id", 1001);
query.bindValue(":name", "Thad Beaumont");
query.bindValue(":salary", 65000);
query.exec();
или так
QSqlQuery query;
query.prepare("INSERT INTO employee (id, name, salary) "
"VALUES (?, ?, ?)");
query.addBindValue(1001);
query.addBindValue("Thad Beaumont");
query.addBindValue(65000);
query.exec();