-
Добрый день, подскажите плиз как программно из хранимки
USE [database]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[MyPrc]
AS
select * from EVENT for xml auto
получить выгрузку и сохранить результат в файл.
Если не трудно пример. -
обнаружил, что если выполнять через 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... -
> Вопрос, как теперь это реализовать из delphi...
запрос у тебя есть ->
select * from EVENT for xml auto
осталось только выполнить, да сохранить значения полей из полученного рекордсета в файл...
т.е. тоже самое что делает sqlcmd в приведённом примере.
сложности организовать цикл типа
while not dataset.eof do begin
writeln(file, dataset.fields[0].asstring);
dataset.next
end
??? -
при for xml auto на выходе получаем blob поле в котором хлам, попробуйте сами
там даже цикл делать не нужно все данные в dataset.fields[0] -
> получаем blob поле в котором хлам, попробуйте сами
это не хлам, это юникод.
> там даже цикл делать не нужно все данные в dataset.fields[0]
это потому, что данных у тебя мало. -
как их к нормальному виду привести ? при Utf8ToUnicode() получаем мусор...
если возможно код плиз -
> там даже цикл делать не нужно все данные в dataset.fields[0]
это потому, что данных у тебя мало.
проверил в sql server 2005 - при любом количестве данных одна запись -
> если возможно код плиз
никакого кода, все мышкой... делаешь подключение через ODBC (преобразование пройдет само из блоб в мемо-ansi), подключаешь датасет, dbmemo, соединяешь, пишешь запрос, открываешь датасет прям в режиме разработки, в dbмемо будет нужный текст.
> проверил в sql server 2005 - при любом количестве данных одна запись
нет 2005го, в 200м бьется по 4066 байт, может есть какая то настройка увеличивающая этот предел... х.з.