Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.046 c
6-1079671581
Pete
2004-03-19 07:46
2004.04.11
TServerSocket & TClientSocket


14-1082138938
XAOC
2004-04-16 22:08
2004.04.11
Помогите сделать удалённый менеджер файлов


6-1079458114
mbgmz
2004-03-16 20:28
2004.04.11
Есть ди способы подключиться к MySQL базе напрямую.


14-1079390083
kaif
2004-03-16 01:34
2004.04.11
Анатомия ангелов


7-1080389662
Insert
2004-03-27 15:14
2004.04.11
Серийник жесткого диска...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский