Множественное результирующее множество
Класс SqlDataReader может хранить несколько результирующих множеств, что продемонстрировано
в примере DataReader. Два запроса, разделенные точкой с запятой, являются двумя
SQL-запросами, которые приводят к возврату двух результирующих множеств, по
одному на каждый запрос.
String *ConnString = // Строка
"server=localhost;uid=sa;pwd=;
database=Northwind";
String *cmd = // Строка
"select Customerld,
CompanyName from Customers where
// выбрать Customerld,
CompanyName из Клиентов где
Customerld like 'T%'/select Customerld, CompanyName ..."
// Customerld подобно "I % '; выбрать Customerld, CompanyName
...
int ResultSetCounter = -1; int NumberFields = 0;
reader = command->ExecuteReader(); // команда
if (reader != 0)
{
NumberFields = reader->FieldCount;
Object *fields[] = new Object*[NumberFields]; // новый
// Объект Console::WriteLine (
"Result Set\tCustomerId\tCompanyName");
// "Результат Set\tCustomerId\tCompanyName");
do
{
ResultSetCounter++;
while(reader->Read() == true) // пока Чтение ()
// == истина {
NumberFields =
reader->GetValues(fields); // поля Console::Write( " {
0 } " ,
ResultSetCounter.ToStringt)); for (int i = 0; i<NumberFields;
i++)
{
Console::Write(
"\t\t{0}", fields[i]); // поля
Console::Write("\n"); // Запись
};
}
while(reader->NextResult() == true); // пока NextResult ()
// == истина
}
Метод FieldCount возвращает количество
столбцов в результирующем множестве.
Поскольку метод GetValues возвращает данные в
их исходном формате, в качестве аргументов
ему передается массив объектов. Метод NextResult
обеспечивает перемещение к следующему
результирующему множеству.
Результатом работы программы DataReader будет
вывод на экран следующих строк:
Result Set Customerld 'CompanyName
0 THEBI The Big Cheese
0 THECR The Cracker Box
0 TOMSP Toms Spezialitaten
0 TORTU Tortuga Restaurante
0 TRADH Tradigao Hipermercados
0 TRAIH Trail's Head Gourmet
Provisioners
1 WANDK Die Wandernde Kuh
1 WARTH Wartian Herkku
1 WELLI Wellington Importadora
1 WHITC White Clover Markets
1 WILMK Wilman Kala
1 WOLZA Wolski Zajazd
|