* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна!
Работа с несколькими результирующими наборами
8 февраля 2009
Если свойство CotnmandType объекта Command установлено в Text, вернуть несколь- ко результирующих наборов можно единственной командой. Для этого нужно по- местить в свойство CommandText несколько команд SQL, разделив их точкой с за- пятой, например:
SELECT * FROM Accounts; SELECT * FROM Creditors Если свойство CommandText объекта Command содержит несколько операторов SQL, эти операторы исполняются по порядку. Если результирующий набор возвра- щают несколько операторов, то объект Data Reader также вернет несколько резуль- тирующих наборов в том порядке, в котором были исполнены операторы. Первый результирующий набор объект DataReader возвращает автоматически. Чтобы получить доступ к следующим результирующим наборам, необходимо вызы- вать метод NextResult. Как и Read, метод NextResult возвращает False (false) при по- пытке обращения к несуществующему результирующему набору, но, в отличие от Read, он устанавливает указатель объекта DataReader на первый результирующий набор. Если перед чтением первого результирующего набора вызвать метод Next- Result, первый набор пропускается, вместо него прочитан будет следующий резуль- тирующий набор. Ниже показан перебор результирующих наборов с помощью ме- тода NextResult: Visual Basic .NET Do While myReader.Read() Здесь должен быь код для перебора записей текущего результирующего набора. End While Эта команда переходит к следующему набору результатов или возвращает False при попытке перехода к несуществующему результирующему набору. Loop While myReader.NextResult() Visual C# do ! while (myReader.ReadO) // Здесь должен быть код для перебора записей текущего результирующего набора. } while (myReader.NextResult(J); > Как прочитать несколько результирующих наборов с помощью объекта DataReader \. Установите значение свойства CommandType объекта Command в Text. 2. Поместите в свойство CommandText объекта Command несколько операторов SQL, разделяя их точкой с запятой. 3. Вызовите метод ExecuteReaderобъекта Commands запишите полученный Data- Reader в переменную. 4. Выполните перебор результирующих наборов при помощи метода DataReader объекта NextResult.