Четверг Мая 17 , 2012
TEXT_SIZE
   


Иерархичные объекты Recordset модели ADO

В ADO 2.0 реализована концепция иерархичных объектов Recordset. Специальный поставщик данных и специальный синтаксис запроса позволили объединять результаты нескольких запросов в одну структуру. Следующий фрагмент кода помещает содержимое таблиц Customers, Orders и Order Details в иерархичный объект Recordset: Dim rsCustomers As ADODB, Recordset, rsOrders As ADODB. Recorders Dim rsOrderDetails As ADODB. Recordset Dim strConn As String, strSQL As String strConn = "Provider=MSDataShape;Data Provider=SQLOLEDB;" & "Data Source=(local)\NetSDK;Initial Catalog=Northwind;" & "Trusted_Connection=Yes;strSQL = "SHAPE {SELECT CustomerlD, CompanyName, ContactName, " & "ContactTitle FROM Customers} AS Customers APPEND " & "((SHAPE {SELECT OrderlD, CustomerlD, EmployeeID, OrderDate " 4 "FROM Orders} AS Orders APPEND ({SELECT OrderlD, ProductID, " & "UnitPrice, Quantity FROM [Order Details]} AS OrderDetaiLs " & "RELATE "OrderlD" TO 'OrderlD') AS OrcferDetails) AS Orders " & "RELATE 'CustomerlD' TO 'CustomerlD'} AS OrdersSet rsCustomers = New ADOOB. Recordset rsCustomers. Open strSQL, strConn, adOpenStatic, adLockBatchOptimistic Set rsOrders = rsCustomers. Fields("Orders").

Value Set rsOrderDetails = rsOrders. Fields("OrderDetails").Value У объекта Recordset есть три объектных переменных, однако все они ссылаются на данные, хранящиеся в одной структуре. Когда вы перемещаетесь по объекту Recordset верхнего уровня, в дочерних объектах Recordset доступны только связанные данные. Преимущества иерархичных объектов Recordset таковы: • они возвращают меньше данных, чем соединяющие запросы; • они возвращают данные в виде одной структуры; • они годятся для простых обновлений.

Несмотря на то, что иерархичные объекты Recordset хорошо справляются с простыми обновлениями, у них есть определенные ограничения. Б лучшем случае проблемы возникают при передаче отложенных изменений нескольких таблиц. У иерархичных объектов Recordset есть и недостатки: • синтаксис запросов ужасен. Посмотрите-ка на этот запрос! Хоть я и счи таю себя экспертом по ADO, я никогда и не думал изучать синтаксис SHAPE; • ограничены возможности управления. В запросе нужно определять отно шение; • можно обращаться только к одному источнику данных; • затруднена фильтрация.

Добавить комментарий


Защитный код
Обновить

Рейтинг пользователей: / 0
ХудшийЛучший 

Метео

Войти

Голосование

Идеальный вариант проведения новогодней корпоративной вечеринки - это…

Сейчас на сайте

Сейчас 7 гостей онлайн