Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / PostgreSQL+XML / 20 сообщений из 20, страница 1 из 1
19.06.2020, 17:35
    #39971029
Eter2020
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
Доброго времени суток, коллеги!

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

Необходимо спарсить множество XML в БД на PG

Код такой процедуры:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
procedure TfImportEGRUL.Button2Click(Sender: TObject);
var
i: integer;
FName: string;
begin
     if OpenDialog1.Execute Then
     Begin
      FName:=OpenDialog1.FileName;
      XMLDocument.LoadFromFile(FName);
      for i:=0 to XMLDocument.ChildNodes.Count - 1 do
      dmUnit.DM.MainTableQuery.SQL.Clear;
      dmUnit.DM.MainTableQuery.SQL.Text :='INSERT INTO VU_VK_ORG.maintable (fullname) VALUES (НаимЮЛПолн)';
      dmUnit.DM.MainTableQuery.Params.ParamByName('maintable.fullname').Value:=XMLdocument.DocumentElement.ChildNodes['НаимЮЛПолн'];
      dmUnit.DM.MainTableQuery.Open;
      dmUnit.DM.MainTableQuery.Active := True;
     End;
end;



Структура таблицы:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
CREATE TABLE VU_VK_ORG.MainTable(
		id				serial PRIMARY KEY not null,
		fullname		        character(300), -- Полное наименование организации
		abbrname		        character(200), -- Скоращенное наименование организации
		IndexAdres 		character(6),,
		AdresNameReg 	        character(50),
		AdresTipReg 	        character(30),
		AdresTipSity 	        character(20),
		AdresNameSity 	        character(20),
		AdresTipStreet 	        character(20),
		AdresNameStreet       character(50),
		AdresHome 		character(10),
		AdresKorp 		character(5),
		AdresOffice 	        character(5),
		Email 			character(30),
		Famhead			character(20),
		Namehead 		character(20),
		FNamehead 		character(20),
		headpos			character(120), -- Должность руководителя организации
		TLFhead			character(20), -- Телефон руководителя организации
		FamDL 			character(20),
		NameDL 			character(20),		
		FnameDL			character(20),
		TLFrespon		        character(20),
		superorg		        character(200),
		INN				character(10),
		OGRN			character(13),
		mainOKVED		character(200),
		VKRId                       INTEGER REFERENCES VU_VK_ORG.VKR (id),
		OMSUId                    INTEGER REFERENCES VU_VK_ORG.OMSU (id),
		allwork			character(20),
		bronwork		        boolean,
		regstatus		        character(200));



Собственно сама ошибка:

MainTableQuery: Parametr 'maintable.fullname' not found

Понятно, что не найден, где я что пропустил или что сделал не так?
...
Рейтинг: 0 / 0
19.06.2020, 19:01
    #39971052
shalamyansky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
В предложении INSERT параметр у вас - НаимЮЛПолн. Не знаю, как параметры оформляются в Postgress, может быть, и так можно.
...
Рейтинг: 0 / 0
19.06.2020, 19:15
    #39971058
shalamyansky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
Все-таки вряд ли так можно. Используйте :НаимЮЛПолн или ?, коллега.
...
Рейтинг: 0 / 0
19.06.2020, 19:20
    #39971059
shalamyansky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
И я бы по древней привычке воздержался от русских букв.
...
Рейтинг: 0 / 0
19.06.2020, 19:32
    #39971061
Eter2020
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
shalamyansky
Все-таки вряд ли так можно. Используйте :НаимЮЛПолн или ?, коллега.


Ошибка та же

Кириллицу бы не использовал, если бы их не было в xml, которые сформированы таким образом что все узлы в них по русски.

Может поля таблиц и узлы xml указал неверно, но как верно с соблюдением синтаксиса их указать?



Привожу фрагмент xml, из которого нужно выбрать только некоторые сведения:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
<?xml version="1.0" encoding="windows-1251" ?><EGRUL ДатаВыг="2020-01-01"><СвЮЛ ДатаВып="2017-02-22" ОГРН="1157847138503" ДатаОГРН="2015-04-17" ИНН="7811191912" КПП="781101001" СпрОПФ="ОКОПФ" КодОПФ="12300" ПолнНаимОПФ="Общества с ограниченной ответственностью">
  <СвНаимЮЛ НаимЮЛПолн="ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ &quot;ГЛАВПРОДУКТ СПБ&quot;" НаимЮЛСокр="ООО &quot;ГЛАВПРОДУКТ СПБ&quot;">
    <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
  </СвНаимЮЛ>
  <СвАдресЮЛ>
    <АдресРФ Индекс="192029" КодРегион="78" КодАдрКладр="780000000000954" Дом="ДОМ 86" Корпус="ЛИТЕР М" Кварт="ПОМЕЩЕНИЕ 13-Н">
      <Регион ТипРегион="ГОРОД" НаимРегион="САНКТ-ПЕТЕРБУРГ" />
      <Улица ТипУлица="ПРОСПЕКТ" НаимУлица="ОБУХОВСКОЙ ОБОРОНЫ" />
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </АдресРФ>
  </СвАдресЮЛ>
  <СвОбрЮЛ ОГРН="1157847138503" ДатаОГРН="2015-04-17">
    <СпОбрЮЛ КодСпОбрЮЛ="11" НаимСпОбрЮЛ="Создание юридического лица" />
    <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
  </СвОбрЮЛ>
  <СвРегОрг КодНО="7847" НаимНО="Межрайонная инспекция Федеральной налоговой службы №15 по Санкт-Петербургу" АдрРО=",191124, Санкт-Петербург г,,,, Красного Текстильщика ул, д 10-12 лит.О,,">
    <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
  </СвРегОрг>
  <СвУчетНО ИНН="7811191912" КПП="781101001" ДатаПостУч="2015-04-17">
    <СвНО КодНО="7811" НаимНО="Межрайонная инспекция Федеральной налоговой службы №24 по Санкт-Петербургу" />
    <ГРНДата ГРН="6157848128520" ДатаЗаписи="2015-04-17" />
  </СвУчетНО>
  <СвРегПФ РегНомПФ="088010100088" ДатаРег="2015-04-22">
    <СвОргПФ КодПФ="088010" НаимПФ="Государственное Учреждение Управление Пенсионного фонда РФ по Невскому району Санкт-Петербурга" />
    <ГРНДата ГРН="6157848583854" ДатаЗаписи="2015-05-27" />
  </СвРегПФ>
  <СвРегФСС РегНомФСС="783004440878301" ДатаРег="2015-04-20">
    <СвОргФСС КодФСС="7830" НаимФСС="Филиал №30 Санкт-Петербургского регионального отделения Фонда социального страхования Российской Федерации" />
    <ГРНДата ГРН="6157848196390" ДатаЗаписи="2015-04-22" />
  </СвРегФСС>
  <СвУстКап НаимВидКап="УСТАВНЫЙ КАПИТАЛ" СумКап="10000">
    <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
  </СвУстКап>
  <СведДолжнФЛ>
    <ГРНДатаПерв ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    <СвФЛ Фамилия="КОЛИНЬКО" Имя="ЕКАТЕРИНА" Отчество="АЛЕКСАНДРОВНА" ИННФЛ="772165312739">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвФЛ>
    <СвДолжн ВидДолжн="02" НаимВидДолжн="Руководитель юридического лица" НаимДолжн="ГЕНЕРАЛЬНЫЙ ДИРЕКТОР">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвДолжн>
  </СведДолжнФЛ>
  <СвУчредит>
    <УчрФЛ>
      <ГРНДатаПерв ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
      <СвФЛ Фамилия="КОЛИНЬКО" Имя="ЕКАТЕРИНА" Отчество="АЛЕКСАНДРОВНА" ИННФЛ="772165312739">
        <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
      </СвФЛ>
      <ДоляУстКап НоминСтоим="10000">
        <РазмерДоли>
          <Процент>100</Процент>
        </РазмерДоли>
        <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
      </ДоляУстКап>
    </УчрФЛ>
  </СвУчредит>
  <СвОКВЭД>
    <СвОКВЭДОсн КодОКВЭД="56.29" НаимОКВЭД="Деятельность предприятий общественного питания по прочим видам организации питания" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="9167847014117" ДатаЗаписи="2016-07-22" />
    </СвОКВЭДОсн>
    <СвОКВЭДДоп КодОКВЭД="52.61.2" НаимОКВЭД="Розничная торговля, осуществляемая через телемагазины и компьютерные  сети (электронная торговля, включая Интернет)">
      <ГРНДата ГРН="9167847014117" ДатаЗаписи="2016-07-22" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="10.13" НаимОКВЭД="Производство продукции из мяса убойных животных и мяса птицы" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="10.20" НаимОКВЭД="Переработка и консервирование рыбы, ракообразных и моллюсков" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="10.39" НаимОКВЭД="Прочие виды переработки и консервирования фруктов и овощей" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="10.71" НаимОКВЭД="Производство хлеба и мучных кондитерских изделий, тортов и пирожных недлительного хранения" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="46.31" НаимОКВЭД="Торговля оптовая фруктами и овощами" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="46.31.11" НаимОКВЭД="Торговля оптовая свежим картофелем" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="46.32" НаимОКВЭД="Торговля оптовая мясом и мясными продуктами" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="46.32.3" НаимОКВЭД="Торговля оптовая консервами из мяса и мяса птицы" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="46.33" НаимОКВЭД="Торговля оптовая молочными продуктами, яйцами и пищевыми маслами и жирами" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="46.38" НаимОКВЭД="Торговля оптовая прочими пищевыми продуктами, включая рыбу, ракообразных и моллюсков" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="47.11" НаимОКВЭД="Торговля розничная преимущественно пищевыми продуктами, включая напитки, и табачными изделиями в неспециализированных магазинах" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="47.21" НаимОКВЭД="Торговля розничная фруктами и овощами в специализированных магазинах" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="47.22" НаимОКВЭД="Торговля розничная мясом и мясными продуктами в специализированных магазинах" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="47.23" НаимОКВЭД="Торговля розничная рыбой, ракообразными и моллюсками в специализированных магазинах" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="47.24" НаимОКВЭД="Торговля розничная хлебом и хлебобулочными изделиями и кондитерскими изделиями в специализированных магазинах" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="47.25" НаимОКВЭД="Торговля розничная напитками в специализированных магазинах" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="47.26" НаимОКВЭД="Торговля розничная табачными изделиями в специализированных магазинах" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="47.29" НаимОКВЭД="Торговля розничная прочими пищевыми продуктами в специализированных магазинах" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="47.7" НаимОКВЭД="Торговля розничная прочими товарами в специализированных магазинах" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="47.75" НаимОКВЭД="Торговля розничная косметическими и товарами личной гигиены в специализированных магазинах" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="47.91.2" НаимОКВЭД="Торговля розничная, осуществляемая непосредственно при помощи информационно-коммуникационной сети Интернет" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="9167847014117" ДатаЗаписи="2016-07-22" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="56.10" НаимОКВЭД="Деятельность ресторанов и услуги по доставке продуктов питания" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="9167847014117" ДатаЗаписи="2016-07-22" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="56.21" НаимОКВЭД="Деятельность предприятий общественного питания по обслуживанию торжественных мероприятий" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="9167847014117" ДатаЗаписи="2016-07-22" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="56.29.2" НаимОКВЭД="Деятельность столовых и буфетов при предприятиях и учреждениях" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="9167847014117" ДатаЗаписи="2016-07-22" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="56.30" НаимОКВЭД="Подача напитков" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="9167847014117" ДатаЗаписи="2016-07-22" />
    </СвОКВЭДДоп>
    <СвОКВЭДДоп КодОКВЭД="73.11" НаимОКВЭД="Деятельность рекламных агентств" ПрВерсОКВЭД="2014">
      <ГРНДата ГРН="1157847138503" ДатаЗаписи="2015-04-17" />
    </СвОКВЭДДоп>
  </СвОКВЭД>
  <СвЗапЕГРЮЛ ИдЗап="150000009230318" ГРН="1157847138503" ДатаЗап="2015-04-17">
    <ВидЗап КодСПВЗ="11201" НаимВидЗап="(Р11001) Создание ЮЛ" />
    <СвРегОрг КодНО="7847" НаимНО="Межрайонная инспекция Федеральной налоговой службы №15 по Санкт-Петербургу" />
    <СведПредДок>
      <НаимДок>ДОКУМЕНТ ОБ ОПЛАТЕ ГОСУДАРСТВЕННОЙ ПОШЛИНЫ</НаимДок>
      <НомДок>3028309348</НомДок>
      <ДатаДок>2015-04-14</ДатаДок>
    </СведПредДок>
    <СведПредДок>
      <НаимДок>Р11001 ЗАЯВЛЕНИЕ О СОЗДАНИИ ЮЛ</НаимДок>
    </СведПредДок>
    <СведПредДок>
      <НаимДок>РЕШЕНИЕ О СОЗДАНИИ ЮЛ</НаимДок>
    </СведПредДок>
    <СведПредДок>
      <НаимДок>УСТАВ ЮЛ</НаимДок>
    </СведПредДок>
    <СведПредДок>
      <НаимДок>ГАРАНТИЙНОЕ ПИСЬМО</НаимДок>
    </СведПредДок>
    <СведПредДок>
      <НаимДок>ДОВЕРЕННОСТЬ</НаимДок>
    </СведПредДок>
    <СведПредДок>
      <НаимДок>ОПИСЬ</НаимДок>
    </СведПредДок>
    <СведПредДок>
      <НаимДок>ЗАЯВЛЕНИЕ О ПЕРЕХОДЕ НА УПРОЩЁННУЮ СИСТЕМУ НАЛОГООБЛОЖЕНИЯ</НаимДок>
    </СведПредДок>
    <СвСвид Серия="78" Номер="009231537" ДатаВыдСвид="2015-04-20" />
  </СвЗапЕГРЮЛ>
  <СвЗапЕГРЮЛ ИдЗап="150000009584552" ГРН="6157848128520" ДатаЗап="2015-04-17">
    <ВидЗап КодСПВЗ="13200" НаимВидЗап="Внесение сведений об учете в налоговом органе" />
    <СвРегОрг КодНО="7847" НаимНО="Межрайонная инспекция Федеральной налоговой службы №15 по Санкт-Петербургу" />
  </СвЗапЕГРЮЛ>
  <СвЗапЕГРЮЛ ИдЗап="150000009909682" ГРН="6157848196390" ДатаЗап="2015-04-22">
    <ВидЗап КодСПВЗ="13400" НаимВидЗап="Внесение сведений о регистрации в ФСС РФ" />
    <СвРегОрг КодНО="7847" НаимНО="Межрайонная инспекция Федеральной налоговой службы №15 по Санкт-Петербургу" />
  </СвЗапЕГРЮЛ>
  <СвЗапЕГРЮЛ ИдЗап="150000012722825" ГРН="6157848583854" ДатаЗап="2015-05-27">
    <ВидЗап КодСПВЗ="13300" НаимВидЗап="Внесение сведений о регистрации в ПФ РФ" />
    <СвРегОрг КодНО="7847" НаимНО="Межрайонная инспекция Федеральной налоговой службы №15 по Санкт-Петербургу" />
  </СвЗапЕГРЮЛ>
  <СвЗапЕГРЮЛ ИдЗап="150000070667068" ГРН="9167847014117" ДатаЗап="2016-07-22">
    <ВидЗап КодСПВЗ="12201" НаимВидЗап="(Р14001) Внесение изменений не связанных с учредительными документами" />
    <СвРегОрг КодНО="7847" НаимНО="Межрайонная инспекция Федеральной налоговой службы №15 по Санкт-Петербургу" />
    <СведПредДок>
      <НаимДок>Р14001 ЗАЯВЛЕНИЕ ОБ ИЗМ.СВЕДЕНИЙ, НЕ СВЯЗАННЫХ С ИЗМ. УЧРЕД.ДОКУМЕНТОВ (П.2.1)</НаимДок>
    </СведПредДок>
    <СведПредДок>
      <НаимДок>ДОВЕРЕННОСТЬ</НаимДок>
    </СведПредДок>
  </СвЗапЕГРЮЛ>
</СвЮЛ>
...
Рейтинг: 0 / 0
19.06.2020, 19:40
    #39971065
shalamyansky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
Причем тут узлы? Вы самостоятельно именуете параметр. Ваш код может выглядеть так:
Код: pascal
1.
2.
dmUnit.DM.MainTableQuery.SQL.Text :='INSERT INTO VU_VK_ORG.maintable (fullname) VALUES (:NaimULPoln)';
dmUnit.DM.MainTableQuery.Params.ParamByName('NaimULPoln').Value:=XMLdocument.DocumentElement.ChildNodes['НаимЮЛПолн'];


или так:
Код: pascal
1.
2.
dmUnit.DM.MainTableQuery.SQL.Text :='INSERT INTO VU_VK_ORG.maintable (fullname) VALUES (?)';
dmUnit.DM.MainTableQuery.Params.Params[0].Value:=XMLdocument.DocumentElement.ChildNodes['НаимЮЛПолн'];
...
Рейтинг: 0 / 0
19.06.2020, 19:46
    #39971069
shalamyansky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
Кстати, черта с два вы таким образом получите значение атрибута СвЮЛ/СвНаимЮЛ/@НаимЮЛПолн. Или перебирайте узлы руками последовательно, или правильно пишите XPath пути, вот как у меня предложением выше.
...
Рейтинг: 0 / 0
19.06.2020, 19:46
    #39971070
Eter2020
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
shalamyansky,

Спасибо за подсказку, буду знать, но это вызвало другую ошибку

Unknown Param.DataType 0

Похоже что-то я кроме этого не учел
...
Рейтинг: 0 / 0
19.06.2020, 19:54
    #39971073
Eter2020
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
shalamyansky,

На postgre я добился нужного результата так:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
DO $$
      DECLARE egrul_xml xml;
BEGIN

egrul_xml := XMLPARSE(DOCUMENT convert_from(pg_read_binary_file('D://EGRUL.xml'), 'UTF8'));

DROP TABLE IF EXISTS egrul_xml_tmp;
CREATE TEMP TABLE egrul_xml_tmp AS
	SELECT
		(xpath('//@ИНН', x))[1]::text AS INN,
		(xpath('//СвНаимЮЛ/@НаимЮЛПолн', x))[1]::text AS NameULP,
		(xpath('//СвНаимЮЛ/@НаимЮЛСокр', x))[1]::text AS NameULS,
		(xpath('//СвАдресЮЛ/АдресРФ/@Индекс', x))[1]::text AS IndexAdres,
		(xpath('//СвАдресЮЛ/АдресРФ/Регион/@НаимРегион', x))[1]::text AS AdresNameReg,
		(xpath('//СвАдресЮЛ/АдресРФ/Регион/@ТипРегион', x))[1]::text AS AdresTipReg,
		(xpath('//СвАдресЮЛ/АдресРФ/Город/@ТипГород', x))[1]::text AS AdresTipSity,
		(xpath('//СвАдресЮЛ/АдресРФ/Город/@НаимГород', x))[1]::text AS AdresNameSity,
		(xpath('//СвАдресЮЛ/АдресРФ/Улица/@ТипУлица', x))[1]::text AS AdresTipStreet,
		(xpath('//СвАдресЮЛ/АдресРФ/Улица/@НаимУлица', x))[1]::text AS AdresNameStreet,
		(xpath('//СвАдресЮЛ/АдресРФ/@Дом', x))[1]::text AS AdresHome,
		(xpath('//СвАдресЮЛ/АдресРФ/@Корпус', x))[1]::text AS AdresKorp,
		(xpath('//СвАдресЮЛ/АдресРФ/@Кварт', x))[1]::text AS AdresOffice,
		(xpath('//СвНомТелТип/@НомТел', x))[1]::text AS tlf,
		(xpath('//СвАдрЭлПочты/@E-mail', x))[1]::text AS email,
		(xpath('//СведДолжнФЛ/СвДолжн/@НаимДолжн', x))[1]::text AS NameDDL,
		(xpath('//СведДолжнФЛ/СвФЛ/@Фамилия', x))[1]::text AS FamDL,
		(xpath('//СведДолжнФЛ/СвФЛ/@Имя', x))[1]::text AS NameDL,
		(xpath('//СведДолжнФЛ/СвФЛ/@Отчество', x))[1]::text AS FNameDL,
		(xpath('//СвСтатус/СвСтатус/@НаимСтатусЮЛ', x))[1]::text AS StatusUL,
		(xpath('//СвПрекрЮЛ/СпПрекрЮЛ/@НаимСпПрекрЮЛ', x))[1]::text AS PrekUL,
		(xpath('//СвПрекрЮЛ/@ДатаПрекрЮЛ', x))[1]::text AS DataPUL		
		FROM unnest(xpath('//СвЮЛ', egrul_xml)) x;
END$$;

INSERT INTO xml_egrul SELECT * FROM egrul_xml_tmp;



Но как это сделать через delphi ума не приложу, хотя и понимаю, что все не так сложно должно быть
...
Рейтинг: 0 / 0
19.06.2020, 19:54
    #39971074
shalamyansky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
Узнаю файлы ежедневных выписок ЕГРЮЛ. Если что, у меня есть полный их разборщик в объекты Delphi. Судя по аватару, вы представляете какую-то государственную контору. Если у вас есть какая полезная обновляемая информация вроде представленной, открытая и не очень, можем договориться о бартере, коллега.
...
Рейтинг: 0 / 0
19.06.2020, 19:59
    #39971076
Eter2020
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
shalamyansky, пишите в личку, договоримся
...
Рейтинг: 0 / 0
19.06.2020, 20:00
    #39971077
shalamyansky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
Eter2020

Unknown Param.DataType 0

Вы там у себя в коде пытаетесь засунуть в параметр список узлов, а надо засовывать строку. Я за вами так и скопировал, лень править было. Получите единичный узел, атрибут в данном случае, и возьмите его строковое значение. Но это уже самостоятельно.
...
Рейтинг: 0 / 0
19.06.2020, 20:07
    #39971079
shalamyansky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
Eter2020
пишите в личку

Не вижу такой возможности. У вас, похоже, не выставлено разрешение на это, поменяйте настройки.
...
Рейтинг: 0 / 0
19.06.2020, 20:11
    #39971083
Eter2020
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
shalamyansky,

Теперь?
...
Рейтинг: 0 / 0
19.06.2020, 20:14
    #39971084
shalamyansky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
Не-а. Пишите на мой логин собака mail ru.
...
Рейтинг: 0 / 0
19.06.2020, 21:04
    #39971094
shalamyansky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
Код: sql
1.
2.
3.
4.
5.
6.
SELECT
    (xpath('//@ИНН', x))[1]::text AS INN,
    (xpath('//СвНаимЮЛ/@НаимЮЛПолн', x))[1]::text AS NameULP,
    (xpath('//СвНаимЮЛ/@НаимЮЛСокр', x))[1]::text AS NameULS,
    (xpath('//СвАдресЮЛ/АдресРФ/@Индекс', x))[1]::text AS IndexAdres,
  FROM unnest(xpath('//СвЮЛ', egrul_xml)) x;


Postgress умеет разбирать XML? Лихо. Зачем вам тогда Delphi для этой задачи?
...
Рейтинг: 0 / 0
19.06.2020, 21:30
    #39971096
Eter2020
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
shalamyansky,

Для решения иных прикладных задач
...
Рейтинг: 0 / 0
19.06.2020, 22:49
    #39971118
Eter2020
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
Если кому понадобится, решение нашел такое:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
procedure TfImportEGRUL.Button2Click(Sender: TObject);
var
i: integer;
FName: string;
begin
     if OpenDialog1.Execute Then
     begin
      FName:=OpenDialog1.FileName;
      XMLDocument.LoadFromFile(FName);
      XMLDocument.Active := true;
      for i:=0 to XMLDocument.DocumentElement.ChildNodes.Count - 1 do
       begin
        dmUnit.DM.MainTableQuery.SQL.Clear;
        dmUnit.DM.MainTableQuery.SQL.Text :='INSERT INTO VU_VK_ORG.maintable (fullname) VALUES (:НаимЮЛПолн)';
        dmUnit.DM.MainTableQuery.Params.ParamByName('НаимЮЛПолн').Value:=XMLDocument.DocumentElement.ChildNodes[i].ChildNodes['СвНаимЮЛ'].GetAttribute('НаимЮЛПолн');
        dmUnit.DM.MainTableQuery.Open;
        end;
        dmUnit.DM.MainTableQuery.Active := True;
     end;
end;



Не исключаю, что есть решение проще, но пока остановлюсь на этом

Всем кто участвовал спасибо за помощь)
...
Рейтинг: 0 / 0
19.06.2020, 23:23
    #39971131
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
demos\Object Pascal\Database\FireDAC\Samples\AddOn\VSE
...
Рейтинг: 0 / 0
03.07.2020, 15:39
    #39975961
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL+XML
1) SQL.Clear - излишняя при использовании SQL.Text; кроме того, корректный способ выполнять модифицирующие запросы - это ExecSQL (еще и более экономный, т.к. не открывается курсор для НД)
2) Советую разделить выбор файла и собственно загрузку в базу
3) ParamByName('НаимЮЛПолн') - исключительно внутреннее значение, лучше писать латиницей от греха подальше. Проблемы с кодировкой могут возникнуть спонтанно и больно ударить
4) Если движок поддерживает, for-in может быть удобнее
5) XPath - это правильный способ для подобных вещей (если он поддерживается движком, конечно). Правда, простейшую реализацию можно сделать и свою (только вложенные элементы и атрибуты).
Код: pascal
1.
2.
3.
4.
5.
6.
      dmUnit.DM.MainTableQuery.SQL.Text := 'INSERT INTO VU_VK_ORG.maintable (fullname) VALUES (:NaimYLPoln)';
      for node in XMLDocument.DocumentElement.ChildNodes do
      begin
        dmUnit.DM.MainTableQuery.Params.ParamByName('NaimYLPoln').Value := node.ChildNodes['СвНаимЮЛ'].GetAttribute('НаимЮЛПолн');
        dmUnit.DM.MainTableQuery.ExecSQL;
      end;
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / PostgreSQL+XML / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]