Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
2-1244023953
andzav
2009-06-03 14:12
2009.07.26
Из DataTimePicker вставляется в поле не только дата, но и время


9-1180939732
MegaVolt
2007-06-04 10:48
2009.07.26
Проблемы при освоении OpenGL. Подскажите решение.


15-1243198856
Германн
2009-05-25 01:00
2009.07.26
Странный глюк с текстовым файлом


2-1243760103
dumb
2009-05-31 12:55
2009.07.26
Последовательно выполнить процедуры


15-1243283277
dis12345
2009-05-26 00:27
2009.07.26
Установка delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский