Конференция "Базы" » Экспорт БД в формате XML [D6, MSSQL]
 
  • Leon © (13.03.10 17:52) [0]
    Доброго времени суток.

    Возникла проблема при сохранении XML файла.

    Вместо красивого файла, генирируемого MS SQL Server Management Studio Express, получается нечто малопонятное...

    Кусок кода:

    Query.SQL.Add(...);
    Query.SQL.Add('FOR XML AUTO, ELEMENTS');
    Query.Open();
    SaveToFile(fn, pfXML);



    текст xml:

    <xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
    xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
    xmlns:rs='urn:schemas-microsoft-com:rowset'
    xmlns:z='#RowsetSchema'>
    <s:Schema id='RowsetSchema'>
    <s:ElementType name='row' content='eltOnly' rs:updatable='true'>
     <s:AttributeType name='c0' rs:name='XML_F52E2B61-18A1-11d1-B105-00805F49916B' rs:number='1' rs:nullable='true'>
      <s:datatype dt:type='bin.hex' dt:maxLength='2147483647' rs:long='true'/>
     </s:AttributeType>
     <s:extends type='rs:rowbase'/>
    </s:ElementType>
    </s:Schema>
    <rs:data>
    <z:row c0='44034f007200670044055200610079006f006e0044034b006f00640044054e0075006d004f00 62004406520065006700




    Судя по гуглу, таких проблем быть не должно.
    Подскажите пожалуйста, что не так?
  • Ega23 © (13.03.10 18:17) [1]
    Query - класс какой?
  • Leon © (13.03.10 18:53) [2]
    Query: TADOQuery;
  • sniknik © (13.03.10 18:57) [3]
    > Подскажите пожалуйста, что не так?
    все так, все правильно, пусть и не то что тобой ожидалось... это
    adPersistXML - Indicates Extensible Markup Language (XML) format. данные, вместе со структурой.
    а красивым XML-ю быть не обязательно, его в блокноте не редактируют... ну если только не в самых простых случаях.
  • Медвежонок Пятачок © (13.03.10 21:05) [4]
    Подскажите пожалуйста, что не так?

    перестарался немного.

    сначала сам запрос вернул xml,
    затем адоквери зачем-то еще раз сохраняет единственную строку результата в xml пакет.

    Query.SQL.Add('select CAST((');
    Query.SQL.Add(...);
    Query.SQL.Add('FOR XML AUTO, ELEMENTS) as varchar(max))');
    Query.Open();
    //SaveToFile(fn, pfXML);

    ShowMessage(Fields[0].Value);

    либо (если используешь SaveToFile(fn, pfXML); ) - убрать из исходного запроса "for xml auto"
  • Leon © (14.03.10 10:55) [5]
    Спасибо всем ответившим,
    Медвежонок Пятачок  © оказался прав :)
    Помогло!
 
Конференция "Базы" » Экспорт БД в формате XML [D6, MSSQL]
Есть новые Нет новых   [134432   +20][b:0][p:0.001]