Код процедуры:
CREATE OR REPLACE FUNCTION spex_replic_database_out_test2(character varying, integer)
RETURNS integer AS
$BODY$
declare pp_day int;
pp_data timestamp;
pp_sssdata float;
pp_Path varchar;
pp_str varchar;
pp_nstr int;
pp_state int;
begin
pp_Path := $1;
pp_nstr := $2;
pp_day := 1;
pp_state := 1;
...
return pp_state;
end;
$BODY$
LANGUAGE plpgsql VOLATILE SECURITY DEFINER
COST 100;
Код в Qt:
QString error;
int res;
QSqlDatabase dbosnov = QSqlDatabase::database("Osnov");
QSqlQuery vygruzka(dbosnov);
// if (!vygruzka.isActive()){
// error = vygruzka.lastError().text();
// emit errorSql(error);
// }
vygruzka.prepare("SELECT spex_replic_database_out_test2(?, ?)");
vygruzka.bindValue(0, "/tmp/test/");
vygruzka.bindValue(1, 200, QSql::Out);
vygruzka.exec();
res = vygruzka.boundValue(1).toInt();
qDebug() << res;
Код брал с документации:
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
Но я получаю не значение RETURN из процедуры, а значение параметра равное 200.
Как добиться получение RETURN из хранимки?