Russian Qt Forum

Qt => Базы данных => Тема начата: Eretic от Сентябрь 19, 2012, 23:51



Название: Вызов хранимок Oracle
Отправлено: Eretic от Сентябрь 19, 2012, 23:51
Приветствую всех кто зашёл в темку!
Прошу помощи.

Дано:

Код:
query.prepare(" BEGIN"
                          " :RESULT := BL_EXEC_OPER(:P_SESSION);"
                          " END;");
query.bindValue(":P_SESSION","10000000000000000000", QSql::Out);

query.exec()

out_Session = query.boundValue(":P_SESSION").toString();

Так работает и возвращается 20-тизначное значение но такая запись не есть гуд.
Когда переделываю строчку бинда на:
Код:
query.bindValue(":P_SESSION",QVariant::String, QSql::Out);
Вылетает ошибка:
Код:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 1

Как сделать так чтобы код не зависел от размерности(+/-)? Данная размерность VARCHAR2(20 BYTE)

Спасибо