Цитата:
	
	
		| 
			
				 Сообщение от 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 дочерним элементам.