Вниз
Скачать: CL | DM;

Из XML в базу данных   Найти похожие ветки 

 
bigbill   (2002-11-08 07:13) [0]

проблема при относительно большом числе "записей" (>1000)
Надо: из XML файлов добавлять (append) в базу данных.
Решение:
создаем файл трансформации:
ToDp.xtr
открываем XML:
xmltransform1.SourceXmlFile:=opendialog1.FileName;
присоединяем к клиенту:
ClientDataSet1.XMLData:=XMLTransform1.Data;
включаем:
ClientDataSet1.Active:=true;
результат выводится в DBGrid1.

Грабли: если элементов в XML мало (штук 20 - 30) все работает как часы, а если много - 1200 - то вылетает с сообщением:
Access violation MIDAS address 65ххх

Как победить эти грабли? и с чем они связаны понять не могу :((

После выбора нужных строчек в DBGrid1 (по кнопке) добавляю в базу (работает):
procedure TForm1.Button2Click(Sender: TObject);
var
i: integer;
begin
if dbgrid1.SelectedRows.Count>0 then
with DBGrid1.DataSource.DataSet do
for i:=0 to dbgrid1.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
table1.Append;
table1.FieldValues["name"]:=DBGrid1.Fields[0].asstring;
...
table1.FieldValues["last"]:=DBGrid1.Fields[9].asstring;
table1.Post;
end;
end;


Может быть сразу из XML в базу (а не через DBGrid)?
НЕ знаю как :((

Плиз, помогите!

Заранее спасибо!


 
asmith   (2002-11-08 18:13) [1]

В MIDAS.dll достаточно много глюков, возможно, это один из них. Можно попробовать проапдейтить ее, в сети есть исправления, правда, не уверен в их официальности. Других выходов навскидку вижу два:
1. парсировать XML с помощью MSXML
2. использовать Delphi XML Mapping Tool.
А дальше - как уже сделано:
table1.Append;
table1.FieldValues["name"]:=strNameAttribute;
...
table1.FieldValues["last"]:=strLastAttribute;
table1.Post;



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.015 c
1-93032
Азазелло
2002-11-18 10:53
2002.11.28
Delphi+ActiveX Crystal Report 8.5 коннект к серверу..


14-93197
Undert
2002-11-06 21:49
2002.11.28
Нужен человек с Оперой, Гозилой и НН!!!


1-93016
Lola
2002-11-18 19:02
2002.11.28
Экспорт отчетов в RTF (а также TXT и XLS)


1-93120
Cker
2002-11-16 22:47
2002.11.28
Минимизация формы...


7-93273
Dimosha
2002-09-26 18:01
2002.11.28
PowerOff, Reboot, Suspend, LogOff




   Наверх