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

Вниз

выгрузить 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
15-1243024654
Юрий
2009-05-23 00:37
2009.07.26
С днем рождения ! 23 мая 2009 суббота


9-1181478232
Eugewik
2007-06-10 16:23
2009.07.26
При условии несколько действий


3-1224485366
Konrads
2008-10-20 10:49
2009.07.26
Использование FireBird на WWW


4-1213253318
DJ Kondakov
2008-06-12 10:48
2009.07.26
Отследить выгрузку DLL-ки


15-1243404241
Unknown user
2009-05-27 10:04
2009.07.26
Windows Forms