В документации есть пример:
QSqlQuery query;
query.prepare("CALL AsciiToInt(?, ?)");
query.bindValue(0, "A");
query.bindValue(1, 0, QSql::Out);
query.exec();
int i = query.boundValue(1).toInt(); // i is 65
Использую Qt 4.2, коннект ODBC или mysql plugin, и query.exec() возвращает false.[/code]
Процедура AsciiToInt - в базе создана:-)
добавлено спустя 4 часа 55 минут: Не работает зараза.
Не нашел другого способа как возвращать через глобальные переменные:
QSqlQuery query;
query.prepare("CALL AsciiToInt(?, @varGlb)");
query.bindValue(0, "A");
query.exec();
query.prepare("SELECT @varGlb");
query.exec();
query.first();
int i = query.value(0).toInt();
Вообще то, хочу использовать для таблицы к которой может быть (почти) одновременно несколько запросов INSERT, тогда не факт что следующий select max(id) ... даст правильный результат.
В lastInsertId тоже не уверен, да и по умолчанию не не будет работь.