Форум: "Базы";
Текущий архив: 2009.07.26;
Скачать: [xml.tar.bz2];
Внизвыгрузить xml из хранимки в файл Найти похожие ветки
← →
gameus © (2008-10-24 18:40) [0]Добрый день, подскажите плиз как программно из хранимки
USE [database]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[MyPrc]
AS
select * from EVENT for xml auto
получить выгрузку и сохранить результат в файл.
Если не трудно пример.
← →
gameus © (2008-10-25 12:46) [1]обнаружил, что если выполнять через sqlcmd получим следующее
приsqlcmd -E -S sqlserver -d database -Q"select * from EVENT for xml auto" -oD:\01.txt
в результате получим хлам,
а приsqlcmd -E -S sqlserver -d database -ic:\1.sql -oc:\output.txt
где 1.sql
:XML ON
select * from EVENT for xml auto
получим желаемый результат.
Вопрос, как теперь это реализовать из delphi...
← →
sniknik © (2008-10-25 13:52) [2]> Вопрос, как теперь это реализовать из delphi...
запрос у тебя есть ->
select * from EVENT for xml auto
осталось только выполнить, да сохранить значения полей из полученного рекордсета в файл...
т.е. тоже самое что делает sqlcmd в приведённом примере.
сложности организовать цикл типа
while not dataset.eof do begin
writeln(file, dataset.fields[0].asstring);
dataset.next
end
???
← →
gameus © (2008-10-25 15:33) [3]при for xml auto на выходе получаем blob поле в котором хлам, попробуйте сами
там даже цикл делать не нужно все данные в dataset.fields[0]
← →
sniknik © (2008-10-25 16:22) [4]> получаем blob поле в котором хлам, попробуйте сами
это не хлам, это юникод.
> там даже цикл делать не нужно все данные в dataset.fields[0]
это потому, что данных у тебя мало.
← →
gameus © (2008-10-25 16:57) [5]как их к нормальному виду привести ? при Utf8ToUnicode() получаем мусор...
если возможно код плиз
← →
gameus © (2008-10-25 17:00) [6]> там даже цикл делать не нужно все данные в dataset.fields[0]
это потому, что данных у тебя мало.
проверил в sql server 2005 - при любом количестве данных одна запись
← →
sniknik © (2008-10-25 17:39) [7]> если возможно код плиз
никакого кода, все мышкой... делаешь подключение через ODBC (преобразование пройдет само из блоб в мемо-ansi), подключаешь датасет, dbmemo, соединяешь, пишешь запрос, открываешь датасет прям в режиме разработки, в dbмемо будет нужный текст.
> проверил в sql server 2005 - при любом количестве данных одна запись
нет 2005го, в 200м бьется по 4066 байт, может есть какая то настройка увеличивающая этот предел... х.з.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2009.07.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c