Как получить несколько наборов результатов с Poco :: Data? -- c++ поле с участием database поле с участием poco-libraries поле с участием multiple-resultsets пол Связанный проблема

How to fetch multiple result sets with Poco::Data?


0
vote

проблема

русский

Я прочитал Poco :: Руководство пользователя данных и упоминается, что Библиотека имеет поддержку нескольких наборов результатов. Существует пример для этой поддержки в Несколько наборов данных раздел Руководства. < / P >.

 <код> typedef Tuple<std::string, std::string, std::string, int> Person; Person pHomer, pLisa; int aHomer(42), aLisa(10), aBart(0);  session << "SELECT * FROM Person WHERE Age = ?; "     "SELECT Age FROM Person WHERE FirstName = 'Bart'; "     "SELECT * FROM Person WHERE Age = ?",     into(pHomer, 0), use(aHomer),     into(aBart, 1),     into(pLisa, 2), use(aLisa),     now;   

Но этот пример только для одного из поддерживаемых способов для получения данных с библиотекой. Существует второй способ для получения данных в Рекордеры, итераторы и строки .

 <код> Statement select(session); // we need a Statement for later RecordSet creation select << "SELECT * FROM Person", now;  // create a RecordSet  RecordSet rs(select); std::size_t cols = rs.columnCount();  // print all column names for (std::size_t col = 0; col < cols; ++col)     std::cout << rs.columnName(col) << std::endl;  // iterate over all rows and columns for (RecordSet::Iterator it = rs.begin(); it != rs.end(); ++it)      std::cout << *it << " ";   

У меня есть обертка вокруг POCO :: Data , которые используют второй способ для получения данных, и я должен продлить его для поддержки нескольких наборов результатов. Интересно, возможно, и как привлечь несколько наборов результатов с помощью RECORY интерфейс?

<Сильные> Послеслоц:

Многократные наборы результатов являются результатом сохраненной процедуры вызова процедуры и из-за этого, невозможно просто использовать несколько объектов ELACTION объекты для каждого выбора.

Английский оригинал

I read the Poco::Data User Manual and there is mentioned that the library has support for multiple result sets. There is example for this support in Multiple Data Sets section of the manual.

typedef Tuple<std::string, std::string, std::string, int> Person; Person pHomer, pLisa; int aHomer(42), aLisa(10), aBart(0);  session << "SELECT * FROM Person WHERE Age = ?; "     "SELECT Age FROM Person WHERE FirstName = 'Bart'; "     "SELECT * FROM Person WHERE Age = ?",     into(pHomer, 0), use(aHomer),     into(aBart, 1),     into(pLisa, 2), use(aLisa),     now; 

But this example in only for one of the supported ways for fetching data with the library. There is second way for fetching data in the RecordSets, Iterators and Rows section.

Statement select(session); // we need a Statement for later RecordSet creation select << "SELECT * FROM Person", now;  // create a RecordSet  RecordSet rs(select); std::size_t cols = rs.columnCount();  // print all column names for (std::size_t col = 0; col < cols; ++col)     std::cout << rs.columnName(col) << std::endl;  // iterate over all rows and columns for (RecordSet::Iterator it = rs.begin(); it != rs.end(); ++it)      std::cout << *it << " "; 

I have a wrapper around Poco::Data which uses the second way for fetching data and I have to extend it to support multiple result sets. I wonder is it possible and how to fetch multiple result sets with RecordSet interface?

Afterwords:

The multiple result sets are result of stored procedure call and because of this, it is not possible just to use multiple Statement objects for each select.

</div
           

Список ответов

2
 
vote
vote
Лучший ответ
 

Определенно возможно иметь дело с несколькими наборами результатов, которые возвращаются из сохраненной процедуры в одном операторе. Смотри, например, Это тест (выполнено здесь ); Недостатком является то, что вы должны знать спереди, как выглядит возвращенные данные, в отличие от записи, которая является универсальным и может обеспечить вывод без предварительного знания о возвращенной структуре данных.

К сожалению, в настоящее время невозможно получить доступ к нескольким наборам данных с использованием записи. Однако, поскольку записи Реализуется с точки зрения выписки , добавление такой функции не должна быть слишком сложной.

Надеюсь, это поможет.

 

It is definitely possible to deal with multiple result sets that are returned from a stored procedure within a single statement. See eg. this test (executed here); the downside is that you have to know up front what the returned data looks like, unlike with RecordSet which is generic and can provide output without having any prior knowledge about the returned data structure.

Unfortunately, it is not currently possible to access multiple data sets using RecordSet. However, since RecordSet is implemented in terms of Statement, adding such feature should not be too hard.

Hope this helps.

</div
 
 
   
   

Связанный проблема

4  Преобразовать фильм в Openni * .oni видео  ( Convert movie to openni oni video ) 
the библиотека Kinect Openni использует пользовательский формат видеофайла для хранения видеороликов, которые содержат информацию RGB + D. Эти видео имеют р...

1  Использование Typedefs соответствующим образом, чтобы избежать «загрязнения Typedef»  ( Using typedefs appropriately to avoid typedef contamination ) 
Я разрабатываю определенные функции для более широкого включения в охватывающем проекте и «особенности», над которыми я работаю, являются некоторые классы, со...

7  GLREADPIXELS () Устанавливает ошибку GL_inValid_Operation  ( Glreadpixels sets gl invalid operation error ) 
Я пытаюсь реализовать цвет выбора с FBO. У меня есть многосмысленные FBO (FBO [0]), которые я использую для визуализации сцены, и у меня нет многоспущенных FB...

0  QNATYIMAGE: невозможно прикрепить к общему сегменту памяти  ( Qnativeimage unable to attach to shared memory segment ) 
Я видел, что есть один та же тема: Ошибка OPENCV в оконечной оболочке для IMREAD: QNATYIMAGE: Невозможно прикрепить к общему сегменту памяти Этот нить был о...

0  Проблемы с повышением :: ptr_vector и Boost :: любой  ( Problems with boostptr vector and boostany ) 
Хорошо, так что я сомневался, я хочу знать, если это возможно: Я использую базу данных, с общими данными (строки, ints, bools и т. Д.). Всякий раз, когда об...

1  Opencv Изображение Цветовое пространство Преобразование с использованием CVTColor  ( Opencv image color space transformation using cvtcolor ) 
Я использую ниже OpenCV API для преобразования цветового пространства: <код> cvtColor(<input mat>, <output mat>, COLOR_RGB2RGBA); Однако выходное изобра...

6  Теоретически, находит_енди параллельно?  ( In theory is find end parallelizable ) 
В настоящее время я работаю над open -Под предложению Для достижения параллельной функциональности проекту я работаю, но я столкнулся с дорожным блоком с f...

4  Должны быть использованы кронштейны для одной строки условных утверждений? [закрыто]  ( Shall brackets be used for one line conditional statements ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> <Путь d = "M15 6.38A6.48 6.48 0 007.78. 04H-.02A6.49 6.49 0 002.05 ...

1  C ++ - утечка памяти, вызванная использованием размещения New Over * этот указатель?  ( C memory leak caused by using placement new over this pointer ) 
Как известно, размещение New просто строит объект без выделения любой памяти. Также все члены в классе <Код> 5.5.10 являются объектами вместо указателей, хот...

2  Замена DLL со статической библиотекой  ( Replacing a dll with the static library ) 
Ударная точка: У меня есть код C ++, который ссылается на стороннюю статическую библиотеку, которая ссылается на WS2_32.Lib. <Сильная> Цель: Я изучаю спо...

-1  Мусор с указателями в классе, C ++  ( Garbage with pointers in a class c ) 
Я использую Borland Builder C ++. У меня есть утечка памяти, и я знаю, что это должно быть из-за этого класса, который я создал, но я не уверен, как это испра...

1  STD :: CIN непосредственно к функции  ( Stdcin directly to a function ) 
Недавно я наткнулся на следующую часть кода. Я не знаю, имеет ли это какой-либо смысл, я просто пытаюсь его понять: <код> object Gender extends Enumeration ...

2  ODBC и NLS_LANG  ( Odbc and nls lang ) 
Допустим, я создал две разные исполняемые файлы программы, например, в C ++. По какой-то причине две программы внутреннее представление текста отличаются др...

23  Почему я не могу открыть видео AVI в OpenCV?  ( Why cant i open avi video in opencv ) 
Я только что написал простой пример чтения видео с OpenCv2.3.1, но кажется, что я не могу открыть видео AVI в любом случае: ( <Код> VideoCapture capture("gui...

1  Установка значения строки и строки  ( Setting value of string to string ) 
У меня есть строка и AMP; Параметр, и я хочу назначить его строковым параметром. Как это можно сделать. ...




© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.