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

Вниз

XML и ADO! Нужна помощь!   Найти похожие ветки 

 
AMS ©   (2002-11-29 15:16) [0]

Условия задачи:
есть компонент TAdoDataSet. В него загружена информация из XML-файла (ADS.LoadFromFile(file)).
Надо:
Записать эту информацию в SQL Server 2000 во временную таблицу той же структуры. Метод UpdateBatch почему-то не работает. Пока делаю путём переписывания по одной записи из TAdoDataSet в TAdoTable. Но получается довольно медленно.

Что посоветуеуте - ЗНАТОКИ DELPHI 5 и 6.


 
asmith   (2002-11-29 18:14) [1]

Можно все вынести на SQL Server - передавать в хранимую процедуру имя файла, читать его там парсером MSXML, парсить и формировать insert-ы для вставки в таблицу.


 
AMS ©   (2002-11-29 18:51) [2]

Если Вы делали это практически, то не могли бы опубликовать или прислать примерчик, как это делается. Я думаю, что это непростая задача.


 
asmith   (2002-11-29 19:32) [3]

Если умешь работать с парсером MSXML или желаешь с этим разбираться (это отдельный разговор), то достаточно просто - работаешь через OLE-автоматизицию. SQL Server для этого содержит специальные хранимые процедуры (см. BOL, sp_OAXXX). Удобно сделать тестовый проектик на DELPHI и отладить парсинг там, а потом быстро перенести в SQL. Маленький примерчик привести трудно, так как реальные коды достаточно объемные из-за специфики процедур sp_OAXXX. Главная процедура преобразования вроде этого:

CREATE PROCEDURE xsp_PublicData2XMLDocument
@filename varchar(255),
@debug int = 0
AS
DECLARE @xmldoc int
DECLARE @hr int
DECLARE @publicdata int
DECLARE @packageheader int

-- Create an object.
exec @hr = sp_OACreate "Microsoft.XMLDOM", @xmldoc OUT
if @hr <> 0 and @debug = 1
begin
exec sp_displayoaerrorinfo @xmldoc, @hr
print "create XMLDOM"
return
end
-- load document
exec @hr = sp_OAMethod @xmldoc, "load", NULL, @filename
if @hr <> 0 and @debug = 1
begin
exec sp_displayoaerrorinfo @xmldoc, @hr
return
end
-- parse document here & build SQL INSERTs
-- Destroy the object.
exec @hr = sp_OADestroy @xmldoc
if @hr <> 0 and @debug = 1
begin
exec sp_displayoaerrorinfo @xmldoc, @hr
return
end



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

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

Наверх




Память: 0.47 MB
Время: 0.016 c
3-61400
BorisUK
2002-12-02 16:49
2002.12.19
Oracle трехзвенка, передача на клиента только части запроса


14-61780
Grande
2002-11-27 10:11
2002.12.19
Кому-нибудь нужна книга по Delphi5?


1-61626
Andrey V.
2002-12-06 20:34
2002.12.19
Checked & Popup


1-61556
viper
2002-12-09 15:54
2002.12.19
Размер файла


1-61614
Шурик Ш
2002-12-10 15:30
2002.12.19
Забыл основы Паскаля