Dataset objects
С помощью этой опции можно настроить SQLXML так, чтобы результирующий конверт состоял из набора фрагментов в формате DiffGram, который является одним из «родных» форматов объекта DataSet из ADO.NET. Это наиболее предпочтительная опция, если клиент написан с использованием платформы .Net Framework. DiffGram-ы записываются в отдельные элементы SqlRowSet, которые являются дочерними элементу SqlResultStream. Кроме набора DiffGram, элемент SqlResultStream также содержит элемент SqlResultCode, представляющий возвращаемый код хранимой процедуры. После элемента SqlResultStream может идти неопределенное количество элементов выходных параметров. Например:
<tns:ИмяМетодаResult xsi:type="sqlresultstream:SqlResultStream"> <sqlresultstream:SqlRowSet>результирующий рекордсет в формате DiffGram</sqlresultstream:SqlRowSet>* <sqlresultstream:SqlResultCode xsi:type="sqltypes:SqlResultCode" sqltypes:IsNested="false">возвращаемый код</sqlresultstream:SqlResultCode></tns:ИмяМетодаResult><tns:ИмяВыходногоПараметра>значение</tns:ИмяВыходногоПараметра>* |
Single dataset
Эта опция с точки зрения пользователя мало чем отличается от предыдущей, если только вы не работаете с несколькими результирующими наборами. Как я уже сказал выше, в случае выбора опции DataSet Object несколько рекордсетов будут представлены соответствующим количеством фрагментов SqlRowSet. Значит, на клиенте вы будете работать с несколькими наборами отдельных объектов DataSet, что не очень удобно, учитывая, что DataSet может содержать множество таблиц. При указании параметра Single dataset SQLXML будет сохранять все рекордсеты в один DiffGram. При этом необходимость в элементе SqlRowSet отпадает. Пример:
<tns:ИмяМетодаResult xsi:type="sqlresultstream:SqlResultStream"> результирующий рекордсет в формате DiffGram <sqlresultstream:SqlResultCode xsi:type="sqltypes:SqlResultCode" sqltypes:IsNested="false">возвращаемый код</sqlresultstream:SqlResultCode></tns:ИмяМетодаResult><tns:ИмяВыходногоПараметра>значение</tns:ИмяВыходногоПараметра>* |