и получаю избыточную одномерную табличку (избыточная потому, что у меня в каждом op 3doc и 2member итого 6 строк для каждой op) но мне собственно так и нужно...
Подскажите можно ли на алгоритмическом языке например на с/tinyxml или например на powershell сделать так же? в смысле без кучи циклов и сохранений значений нод во временные переменные...)
Здравствуйте, Mihas, Вы писали:
M>Здравствуйте, .alex, Вы писали:
A>>Подскажите можно ли на алгоритмическом языке M>C# с его технологией ADO.Net дотягивает до алгоритмического языка?
Да, конечно! Можно и на нем пример...
Здравствуйте, .alex, Вы писали:
M>>C# с его технологией ADO.Net дотягивает до алгоритмического языка? A>Да, конечно! Можно и на нем пример...
Похоже, насчет, плоской таблицы я погорячился. Но, вот, что можно сделать с помощью ADO.Net:
Загрузить весь XML в DataSet. Все элементы (op, doc, member) разложатся по одноименным таблицам. А между таблицами создадутся связи FOREIGN_KEY.
Это дает возможность обрабатывать все экземпляры сущности (например, member) как одну таблицу: пробежаться по строкам в цикле, предварительно отфильтровав их по условию (метод DataTable.Select()). Если же для строки member потребуется получить связанную с ней строку op, то это можно сделать с помощью метода DataRow.GetParentRow(). И в обратную строну: для строки op можно получить связанные с ней строки Member с помощью DataRow.GetChildRow().
ИМХО, построить на этом аналог оператора JOIN, но со своими блекджеками — вполне несложная задача. Больше мороки будет правильно загрузить XML в DataSet.
Здравствуйте, Mihas, Вы писали: M>Похоже, насчет, плоской таблицы я погорячился. Но, вот, что можно сделать с помощью ADO.Net: M>Загрузить весь XML в DataSet. Все элементы (op, doc, member) разложатся по одноименным таблицам. А между таблицами создадутся связи FOREIGN_KEY. M>Это дает возможность обрабатывать все экземпляры сущности (например, member) как одну таблицу: пробежаться по строкам в цикле, предварительно отфильтровав их по условию (метод DataTable.Select()). Если же для строки member потребуется получить связанную с ней строку op, то это можно сделать с помощью метода DataRow.GetParentRow(). И в обратную строну: для строки op можно получить связанные с ней строки Member с помощью DataRow.GetChildRow(). M>ИМХО, построить на этом аналог оператора JOIN, но со своими блекджеками — вполне несложная задача. Больше мороки будет правильно загрузить XML в DataSet.
Спасибо за совет! Сделать несколько реляционных табличек "автоматом" тоже вариант... Только можно пожалуйста маленький пример кода, ну или ссылку где пример есть...