Название: out-параметр из oracle Отправлено: romanick от Июнь 23, 2010, 20:41 Привет. Qt 4.6.2, MinGW, Oracle 10g.
Не могу понять почему натыкаюсь на сообщение "ORA-03106: фатальная ошибка двухзадачного коммуникационного протокола" в следующем коде: Код: bool DataDisp::test() Если вместо QVariant rr(QVariant::String); использовать QVariant rr(" "); то ошибка пропадает, но при этом q.boundValue(0) возвращает не строку 'test', а только её часть - столько первых символов, сколько было пробелов в QVariant rr(" ");. Понимаю, что можно сделать QString rr(1024, " "); но это, как бы так сказать, не эротично. :) В чём причина такого странного поведения? Название: Re: out-параметр из oracle Отправлено: ритт от Июнь 23, 2010, 20:46 а слабо просто `QVariant rr;` ?
Название: Re: out-параметр из oracle Отправлено: romanick от Июнь 25, 2010, 20:25 Пробовал и так. Ошибка ora-03106. Т.е. аналогично QVariant rr(QVariant::String);
Название: Re: out-параметр из oracle Отправлено: ритт от Июнь 26, 2010, 11:42 -q.bindValue(0, rr, QSql::Out);
+q.addBindValue(0, QSql::Out); Название: Re: out-параметр из oracle Отправлено: romanick от Июнь 27, 2010, 12:21 -q.bindValue(0, rr, QSql::Out); ORA-06502: PL/SQL: : ошибка преобразования символа в число ошибка числа или значения+q.addBindValue(0, QSql::Out); Пробовал и так: q.addBindValue("", QSql::Out); ORA-06502: PL/SQL: : буфер символьных строк слишком маленький ошибка числа или значения Похоже, это всё же глюк в реализации QOCI. Его можно обойти способом описанным мною выше, но всё равно неприятно... Название: Re: out-параметр из oracle Отправлено: ритт от Июнь 27, 2010, 13:04 нет подобной ошибки в реализации. в текущем проекте используется QOCI и множество подобных кусков кода - всё работает и не жужжит.
а что за `q.addBindValue("", QSql::Out);` такое вообще? это с потолка или методом тыка? не проще ли почитать документацию? Название: Re: out-параметр из oracle Отправлено: MoPDoBoPoT от Июнь 27, 2010, 20:04 По-моему я что-то подобное в багтрекере видел.
а что за `q.addBindValue("", QSql::Out);` такое вообще? Так строковой же тип.Название: Re: out-параметр из oracle Отправлено: ритт от Июнь 27, 2010, 22:15 MoPDoBoPoT, ткни носом в таску...
romanick, попробуй то же самое с числами и/или блобами. сейчас бегло глянул - кажись, у нас строки в хп не используются (но не уверен)... Название: Re: out-параметр из oracle Отправлено: romanick от Июнь 28, 2010, 08:29 Так как написано в документации не работает. Я об этом в первом посте писал. Читайте внимательнее обсуждение вопроса, а не умничайте. Вопрос - почему не работает.
А код q.addBindValue("", QSql::Out); от безасходности... Название: Re: out-параметр из oracle Отправлено: romanick от Июнь 28, 2010, 08:50 Цитировать romanick, попробуй то же самое с числами и/или блобами С числами всё прекрасно работало, пока не понадобилось сделать строковой out-параметр. |