Показать сообщение отдельно
  #3  
Старый 24.07.2015, 13:17
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Цитата:
Сообщение от Alegun
Непонятки, в базе повторы или в разбираемом XML файле?

Первое можно обойти при выводе, посредством SELECT DISTINCT, а второе предварительным заносом в StringList только уникальных записок с проверкой на дубликат, XML проще прошерстить и после разбора закинуть результат в DB

Дубликаты приходят в XML. И в базу они попасть не должны.

Данные вложены, т.е. Дерево XML имеет много веток.

При "прочёсывании" XML данные в БД попадают в связанные таблицы.
Циклически это выглядит так:

Код:
ADODataSet.Open;
if ADODataSet.IsEmpty then 
  AdoDataSet.InserRecord[nil, aID, ... ];
aID := ADODataSet['ID'];

  for k:=0 to a.Childs.Count -1 do
  begin
    b:= a.Child[k];
    ADODataSet.Param1 := ...;
    ADODataSet.Param2 := ...;    
    ADODataSet.Open;

    if ADODataSet.IsEmpty then 
      AdoDataSet.InserRecord[nil, aID, ... ];
    bID := ADODataSet['ID'];

      for l:=0 to b.Childs.Count -1 do
      begin
// и.т.д 

Мне всё равно нужно узнавать ID родительского элемента, чтоб при вхождении в дочерний уровень подставлять этот ID дочерним элементам.
Ответить с цитированием