Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Атрибут в XML


Автор: Kamoliddin 20.4.2007, 12:42
Привет ! 
У меня есть файл XML :

Код

<?xml version="1.0" standalone="yes"?>
<DATAPACKET Version="2.0">
<ROWS>
<ROW KOD="3,00" NAME="АНДИЖАНСКАЯ" K_1N="01.01.2007"/>
<ROW KOD="6,00" NAME="БУХАРСКАЯ" K_1N="01.02.2007"/>
<ROW KOD="8,00" NAME="ДЖИЗАКСКАЯ" K_1N="01.03.2007"/>
</ROWS>
</DATAPACKET>


Как видите список полей отсуствовает, и тип полей я не могу определить сразу.
Запись загружаеться в Оракл. А когда тип поля DATE то надо преоброзовать с помощью to_date(DATE,"dd.mm.yyyy").

Загрузка в Оракл :


Код

 with DM.XMLDocument1.ChildNodes.FindNode("ROWS") do
  begin
    for k:=0 to ChildNodes.Count-1 do // цикл записей
    begin
      with ChildNodes.get(k) do begin
      for i:=0 to AttributeNodes.Count - 1 do //  цикл атрибутов
       begin

       if  тип атрибута  являеться DATE то 
        q:= q + 'to_date('+QuotedStr(AttributeNodes.get(i).NodeValue)+' ,''dd.mm.yyyy'')'
       else
        q:= q + QuotedStr(AttributeNodes.get(i).NodeValue);

       if i <> AttributeNodes.Count - 1 then q:= q + ',';

       end;
     end; 

    q:= 'Insert into ' +Table_name + ' values (' + q + ' )' ;
  
    DM.Import_OQ.Close;
    DM.Import_OQ.SQL.Text:=q;
    DM.Import_OQ.ExecSQL;
    end;
  end; 



А вот как узнать тип поля не могу найти ....! 

Автор: aktuba 20.4.2007, 14:57
Цитата

А вот как узнать тип поля не могу найти ....! 


А никак!!! Это строка - распознавай в ручную и преобразовывай. Других путей тут нет...

Автор: Insert 20.4.2007, 15:15
Можешь в одном из аттирбутов сделать вроде искусственного типа и оттуда его брать.

Автор: aktuba 20.4.2007, 16:30
Insert, если я правильно понимаю - это не он формирует XML, а берет готовый...

Автор: Kamoliddin 20.4.2007, 17:29
Цитата

Insert, если я правильно понимаю - это не он формирует XML, а берет готовый... 


у меня готовый файл. 

Я уже решил проблему но не так как хотел. 
Пришлось вручную проверять ....! Спасибо вам.

Автор: aktuba 20.4.2007, 18:24
Цитата

у меня готовый файл. 

Я уже решил проблему но не так как хотел. 
Пришлось вручную проверять ....! Спасибо вам. 


Я про то и говорил...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)