2012-02-28 1 views
1

Можно ли получить необработанный вывод DB DB Oracle в QSqlQuery, например. что-то вроде этого:Извлечь вывод Oracle из dbms_output.put_line с помощью QtSql

QSqlQuery sqlQuery; 
sqlQuery.prepare("exec dmbs_output.put_line('hello world');"); 
sqlQuery.exec(); 

Теперь я хотел бы получить доступ к выходной («привет мир» в этом примере).

ответ

2

Предполагая, что вы настроили буфер, который DBMS_OUTPUT пишет по телефону DBMS_OUTPUT.ENABLE ранее, вы должны быть в состоянии использовать процедуру DBMS_OUTPUT.GET_LINE или GET_LINES для извлечения данных из буфера.

Я не эксперт с библиотеками QT, но вот пример calling a stored procedure that returns a collection в Qt, который, похоже, будет тем, что вам нужно будет сделать, чтобы вызвать процедуру GET_LINES.

+0

Когда я привязываю QVariant к первому параметру GET_LINES, запрос SQL завершается с сообщением об ошибке, что количество параметров GET_LINES неверно. Есть идеи? – fawick

+0

@fawick - 'GET_LINES' принимает два параметра. Первый - это массив для извлечения данных. Второй - это число, указывающее, сколько строк вы хотите получить. Я предполагаю, что вы не прошли второй параметр? –

+0

Нет, это нормально, это QSqlQuery :: bindValue, который на самом деле не связывает мой QVariant ... – fawick