XML и Delphi

Есть XML-файл как его содержимое запихать в поле типа XML .Среда программирования Delphi

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

А что вы

А что вы пробовали? Что не получилось?

XML и delphi(как делаю)

ну представляю себе так
есть таблица sendrecv
nomer integer
send xml
recv xml

то в Delphi
with sendrecv do Begin
insert;
nomer:=1;
Send:=' ';<---------------- вот здесь не понятно
post;
end;

Да и еще данные лежат в текстовом файле, ну те там все по правилам XML
Можно ли загрузить в TStringList и как то вот так Send:=

Демьян, вам и не

Демьян, вам и не станет понятно, пока не попробуете конкретно.
Для начало почитайте здесь:
http://postgresql.ru.net/manual/datatype-xml.html

Помоему этих данных вполне достаточно, чтобы сконструировать необходимый вам запрос.

я попробовал

DMBasa.PSQLTableEditXml.Open;
DMBasa.PSQLTableEditXml.Edit;
DMBasa.PSQLTableEditXml.FieldByName('telegram_recv').Value:=Memo1.Text;
DMBasa.PSQLTableEditXml.Post;

вот после это post ошибка
Postrgres Error code:(1)
Invalid XML convert

В Memo1.Text я вижу вот это те xml вроде нормальный

<?xml version="1.0" ?>
  <message>
    <header>
        <to>cpyMine</to>
        <from>cryGRES</from>
        <type>TrainLoad</type>
     </header>
       <body>
              <Train>
                      <IDTelegramm>12345678</IDTelegramm>   
                      <TrainLoadBeg>02.07.2008 14:28</TrainLoadBeg>
                      <TrainLoadMash>Fedorov</TrainLoadMash>
                      <TrainLoadEnd>02.07.2008</TrainLoadEnd>
                      <Waggons>
                                  <Waggon ONo="1"  WNo="12345678"  Tdflt="69,50" PAsh="4,1" TCoal="69,82" ErrorID="0"> </Waggon>
                                  <Waggon ONo="2"  WNo="23456781"  Tdflt="68,00" PAsh="4,51" TCoal="67,02" ErrorID="0"> </Waggon>      
                                  <Waggon ONo="3"  WNo="34567812"  Tdflt="70,50" PAsh="4,51" TCoal="69,90" ErrorID="0"> </Waggon>      
                                  <Waggon ONo="4"  WNo="45678123"  Tdflt="65,00" PAsh="4,51" TCoal="64,82" ErrorID="0"> </Waggon>            
                                  <Waggon ONo="5"  WNo="56781234"  Tdflt="65,50" PAsh="4,51" TCoal="64,82" ErrorID="0"> </Waggon>      
                      </Waggons> 
               </Train>      
      </body>           
     </message>

кстати, если вы

кстати, если вы не собираетесь (или-таки собираетесь?) обрабатывать xml-контент на сервере, то на кой вам вообще этот тип? Тем более, что из делфевых компонентов его кушает только PostgresDAC (замечу - платный).
Не проще ли использовать старый добрый varchar?
Или же, в зависимости от задачи, можно парсить документ в специально подготовленную таблицу с древовидной структурой данных.

Проверил вставку в поле типа xml - foo.xm
делаю например так

INSERT INTO foo(xm) VALUES('<d>ddd</d>')
и он вставляет без проблем

xml и deplhi

да я собираюсь разбирать и обрабатывать содержимое XML на стороне сервера.
для меня боллее приемливо insert into foo(xm) VALUES('ddd'), но как в Values запихать содержимое не набирать же.
или так insert into foo(xm) VALUES(memo1.text)?

А если убрать

А если убрать заголовок?

<?xml version="1.0" ?>

может тогда так

может тогда так попробовать

sql:=format('insert into foo(xm) VALUES($$%s$$),[memo1.text]);
SomeConnection1.Execute(sql);

это конечно с условием, что memo1.text содержит корректно отформатированный xml-документ.

пробую так

INSERT INTO foo(xm) VALUES($$<?xml version="1.0" encoding="UTF-8"?><d>ddd</d>$$)
--вставляет <d>ddd</d>
 
--и так тоже работает:
INSERT INTO foo(xm) VALUES($$<?xml version="1.0" ?>
  <message>
    <header>
        <to>cpyMine</to>
        <from>cryGRES</from>
        <type>TrainLoad</type>
     </header>
       <body>
              <Train>
                      <IDTelegramm>12345678</IDTelegramm>   
                      <TrainLoadBeg>02.07.2008 14:28</TrainLoadBeg>
                      <TrainLoadMash>Fedorov</TrainLoadMash>
                      <TrainLoadEnd>02.07.2008</TrainLoadEnd>
                      <Waggons>
                                  <Waggon ONo="1"  WNo="12345678"  Tdflt="69,50" PAsh="4,1" TCoal="69,82" ErrorID="0"> </Waggon>
                                  <Waggon ONo="2"  WNo="23456781"  Tdflt="68,00" PAsh="4,51" TCoal="67,02" ErrorID="0"> </Waggon>      
                                  <Waggon ONo="3"  WNo="34567812"  Tdflt="70,50" PAsh="4,51" TCoal="69,90" ErrorID="0"> </Waggon>      
                                  <Waggon ONo="4"  WNo="45678123"  Tdflt="65,00" PAsh="4,51" TCoal="64,82" ErrorID="0"> </Waggon>            
                                  <Waggon ONo="5"  WNo="56781234"  Tdflt="65,50" PAsh="4,51" TCoal="64,82" ErrorID="0"> </Waggon>      
                      </Waggons> 
               </Train>      
      </body>           
     </message>$$)

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023