Поделиться через


Общие сведения о формировании данных

Формирование данных означает создание иерархических связей между двумя или более логическими сущностями в запросе. Иерархию можно увидеть в отношениях между записью одного набора записей и одной или несколькими записями (также известной как глава) другого набора записей. В связи с родительским дочерним элементом родительский набор записей содержит дочерний набор записей. Примером такой иерархической связи являются клиенты и заказы. Для каждого клиента в базе данных может быть нулевая или более заказов. Иерархическая связь может быть рекурсивной, что означает, что записи внука могут быть вложены в дочернюю запись. В принципе иерархическая запись может быть вложена в любую глубину. На практике ADO ограничивает рекурсию не более 512 наборов записей.

Как правило, столбцы набора записей фигуры могут содержать данные от поставщика данных, такого как SQL Server, ссылки на другой набор записей, значения, производные от вычисления по одной строке набора записей, или значения, производные от операции над столбцом всего набора записей. Столбец также может быть создан и пуст.

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

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

Кроме того, формирование данных в ADO позволяет создавать новые объекты набора записей без базового источника данных с помощью НОВОЙ ключевое слово для описания полей родительских и дочерних наборов записей. Затем новый объект Recordset можно заполнить данными и постоянно храниться. Разработчики также могут выполнять различные вычисления или агрегаты (например, СУММ, AVG и MAX) в дочерних полях. Формирование данных также может создать родительский набор записей из дочернего набора записей, группируя записи в дочернем элементе и помещая одну строку в родительскую для каждой группы в дочернем элементе.

Обычный SQL позволяет извлекать данные с помощью синтаксиса JOIN , но это может быть неэффективно и неприменимо, так как избыточные родительские данные повторяются в каждой записи, возвращаемой для данной связи с родительским дочерним элементом. Формирование данных может связать одну родительскую запись в родительском наборе записей с несколькими дочерними записями в дочернем наборе записей, избегая избыточности СОЕДИНЕНИЯ. Большинство людей находят модель программирования набора записей родительского ребенка более естественной и проще работать с моделью single Recordset JOIN.