Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизПеревод 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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.037 c