![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Из XML файла сохранить в базу данных? [D6]
Max_ © (2003-11-04 11:02:00)
У меня есть ClientDataSet. В него я загружаю XML файл, в свою очередь ClientDataSet через DataSetProvider присоединён к таблице из базы (Oracle). Задача состоит в том как сохранить XML данные в таблицу? Делаю ApplyUpdate(-1) после загрузки файла- ничего не даёт. Таблица и файл по структуре вроде идентичны. Одним словом, он эти изменения не видет!
sokohigh (2003-11-04 20:06:00) [1]
>Max
А в XMLMapper-е тестовая трансформация походит?
Файл трансформации создаешь на основе того же файла, который пытаешься залить в базу?
sokohigh (2003-11-04 19:58:00) [2]
>Romkin ©, Vlad
А что означает "работать с методами собственно сервера"?
Я не нашел ничего лучшего для решения этой проблемы, чем использование XMLTransformClient с файлом трансформации типа "Insert Delta" - это работает, если все правильно сделать. Можно тоже исходный XML преобразовывать в "Delta-XML-CDS-формат" ручками, а иначе как?
Max_ (2003-11-04 12:03:00) [3]
XMLData- string, а Data-OleVariant! Delta- readonly! Мне интересно почему ошибка вылезает какая-то:XML Parse Error: Reason:Invalid at the top level of the document. Line 1, Position 1
Vlad (2003-11-04 11:50:00) [4]
Обрати внимание на [4]
bushmen (2003-11-04 11:46:00) [5]
А случаем, это не ошибка заголовка XML документа?
Max_ (2003-11-04 11:44:00) [6]
ChangeCount =0! Я тут нашёл компонент XMLTransformClient- он именно этим и занимается через трансформационный фаил, который можно генерировать через XML Mapper, но он мне выдаёт следующую ошибку: XML Parse Error: Reason:Invalid at the top level of the document. Line 1, Position 1
Romkin (2003-11-04 11:26:00) [7]
И что, ChangeCount > 0 ?
Max_ (2003-11-04 11:25:00) [8]
Так я ж написал всю цепочку:
procedure TForm1.FormCreate(Sender: TObject);
begin
ClientDataSet1.LoadFromFile("c:\aaa.xml");
if ClientDataSet1.ChangedCount>0 then
ClientDataSet1.ApplyUpdates(-1);
end;
procedure TForm1.ClientDataSet1ReconcileError(
DataSet: TCustomClientDataSet; E: EReconcileError;
UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
ShowMessage(E.Message);
end;
ClientDataSet через DataSetProvider присоединён к таблице из базы (Oracle).
Romkin (2003-11-04 11:21:00) [9]
А все-таки надо работать с методами собственно сервера, ты должен загрузить свойство cds DATA как Delta
bushmen (2003-11-04 11:16:00) [10]
>Max_
А твой код мы за тебя будем составлять?
Max_ (2003-11-04 11:11:00) [11]
Ну а всё таки?
Reindeer Moss Eater (2003-11-04 11:09:00) [12]
В девятке нативная поддержка XML есть.
Зачем такие подпорки?