В документации есть пример:Код: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 тоже не уверен, да и по умолчанию не не будет работь.
|