Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Перевод xml в БД   Найти похожие ветки 

 
Evyshka   (2004-03-11 16:43) [0]

Необходимо добавлять в БД данные из xml файлов
Как это сделать если честно, даже не знаю с чего начать и возможно ли это в delphi6?


 
Fay ©   (2004-03-11 16:49) [1]

Да


 
Vlad ©   (2004-03-11 16:49) [2]


> Evyshka   (11.03.04 16:43)  


> с чего начать и возможно ли это в delphi6?

Возможно.
Изучить работу с COM-объектами, коим является msxml, либо (начиная с версии d6) изучить класс TXMLDocument (если я не ошибаюсь, по моему так называется)
Ну и естественно, работу с СУБД, это по-моему в любой книге для чайников есть :-)


 
Evyshka   (2004-03-11 16:54) [3]

то есть напрямую конвертирующего компонента нет?


 
sherminator ©   (2004-03-11 16:55) [4]

хех.. а проще импортом закачать всё в аccess и дальше уже через bde подключить..))))


 
Evyshka   (2004-03-11 16:59) [5]

через access нельзя надо организовать что то типа приема в БД


 
Vlad ©   (2004-03-11 17:00) [6]


> Evyshka   (11.03.04 16:54) [3]
> то есть напрямую конвертирующего компонента нет?

Возможно где нибудь и есть, я не в курсе.
Если чесно, там писать-то вобщем делать нечего, если знаком с xml. Проще самому сделать чем искать.


 
just me   (2004-03-11 17:09) [7]

Можно сделать примерно так:
http://delphi.about.com/library/bluc/text/uc050601a.htm


 
Romkin ©   (2004-03-11 17:41) [8]

Жуть... Все ручками! Ужас. Используйте TClientDataset, совместно с  TXMLTransformProvider или просто TXMLTransformClient. Лучше сначала первое освоить - перекинув xml в cds, вставить оттуда записи в БД - уже дело техники.


 
Vlad ©   (2004-03-11 17:58) [9]


> Romkin ©   (11.03.04 17:41) [8]

Да, но CDS в свой XML файл пишет кучу метаданных и такой формат м.б. совсем не удобен для работы. А как быть если мы xml файл получаем откуда-то извне (не мы его формировали), и у нас стоит задача распарсить и сохранить значения в базе ?


 
Romkin ©   (2004-03-11 18:03) [10]

Я и сказал, как быть. Подробнее: Берешь энтот файл, запущаешь XML mapper, открываешь в нем этот файл, с заказом сделать из него пакет данных... Делает. Ты крутишь настройки, чтобы всю инфу взять... Сохраняешь схему (*.xtr), ляпаешь на форму cds, ее присоединяешь к TXMLTransformProvider, в ем указываешь файл и схему. Остается сделать у cds Active := true...


 
Vlad ©   (2004-03-11 18:07) [11]


> Romkin ©   (11.03.04 18:03) [10]

Круто. Это все в D6 наверное появилось ?
Только вот вопрос, все эти "приседания" не займут ли больше времени чем просто программно распарсить xml файл, ведь это по сути достаточно тривиальная задача.


 
Romkin ©   (2004-03-11 18:09) [12]

Терпеть не могу ручками делать. Первый раз разобраться с меппером - часа два. Потом влет идет.


 
just me   (2004-03-11 18:20) [13]

> Жуть... Все ручками! Ужас. Используйте TClientDataset
Все это замечательно, если в задаче используются статически определенные на этапе проектирования структуры данных. Это даже широко используется в .NET - typed datasets. Но, увы, в очень многих задачах структуры меняются во время жизни системы всякого рода метаописаниями и прочей жутью. Так что приходится ручками...


 
Romkin ©   (2004-03-11 18:28) [14]

Поменялось что-то - поменяй transformation scheme. И все, в текст программы лезть не надо. Как раз для случая "когда все меняется"


 
Vlad ©   (2004-03-11 18:33) [15]

Да, это удобно, бесспорно. Надо будет на досуге D6 поставить и изучить это дело.
Но все-же, думаю для начала человеку было бы не плохо узнать msxml изнутри, как COM-объект, а потом уже двигаться дальше. Но это чисто моё ИМХО. :-)


 
just me   (2004-03-11 18:59) [16]

И что - пользователь или администратор системы сможет сам transformation scheme поменять? Без пользования IDE Delphi?


 
Deniz ©   (2004-03-12 07:25) [17]

Что-то я не понимаю или пропустил :-(
TClientDataSet.LoadFromFile("c:\FyFile.xml") уже не работает или ...?


 
Evyshka   (2004-03-12 08:58) [18]

Вообще а если через маппер работать каждый файл открывать в нем???
Ведь структура определена, но с каждым разом меняет то есть не обязательно что запись придет полной структуры а вполне возможно урезанная


 
Romkin ©   (2004-03-12 10:09) [19]

just me  (11.03.04 18:59) [16] Если он может поменять формат xml, то и xtr подправить сможет. Это ведь тоже xml :))
Vlad ©  (11.03.04 18:33) [15] Весьма рекомендую, очень приятная штука. А вот msxml - громоздкий он, понадобится - узнаем. Его использовать, кстати, необязательно в такой задаче, можно просто грубо работать с xml как с текстовым файлом. Дешево и сердито :))
Evyshka  (12.03.04 08:58) [18] Должно пройти, просто отсутствующие поля не заполнятся. Определи, что тебе надо один раз, и используй.


 
Evyshka   (2004-03-12 15:49) [20]

Я открываю  файл в маппере он показывает вложенные секции , как быть с ними?? Выгружать в отдельные таблицы???


 
Evyshka   (2004-03-12 15:49) [21]

Я открываю  файл в маппере он показывает вложенные секции , как быть с ними?? Выгружать в отдельные таблицы???


 
Romkin ©   (2004-03-12 16:34) [22]

Да. У тебя будет cds, в которой будет TDatasetField, ставишь вторую cds и назначаешь у нее проперти datasetfield, будет мастер-деталь



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.043 c
7-1079005742
bg8
2004-03-11 14:49
2004.04.11
Синхронизация приборов с помощью TTL логики


14-1079417768
Mike_Goblin
2004-03-16 09:16
2004.04.11
Вчера пришло по почте


1-1082562776
Insert
2004-04-21 19:52
2004.04.11
Запуск readme


1-1082617439
sergeii
2004-04-22 11:03
2004.04.11
Funkcija konvertirujushiaja Cifri v slova


1-1079950125
Эдуард
2004-03-22 13:08
2004.04.11
Как в disign-time е отловить факт изменения размеров формы?