Как выполнить запросы с несколькими строками, используя QOCI (привязка Qt Oracle)? - PullRequest
0 голосов
/ 08 сентября 2010

Я использую привязку QOCI для соединения Qt с базой данных Oracle 10g. Код действительно прост:

QSQLQuery sqlQuery = QSQLQuery(database);
sqlquery.prepare(querystring);
sqlQuery.exec();

Теперь, если строка запроса содержит только одну строку, она работает:

select * from dual

Но если он содержит несколько строк, я получаю недопустимый символ ORA-911:

select *
from dual

У меня много запросов, занимающих несколько строк, так что это довольно проблематично. Простое удаление новых строк в Qt не вариант, потому что запросы содержат комментарии в конце строки ("-").

Любые предложения, как я могу выполнить эти многострочные запросы?

1 Ответ

1 голос
/ 15 сентября 2010

Отвечая на мой собственный вопрос: символом новой строки был разделитель абзацев U + 2029 вместо Юникода (\ n). Это вызвало ORA-911.

querystring.replace(QChar(0x2029), QChar('\n'));

делает свое дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...