Выгрузить в файл

vah
Дата: 08.06.2011 11:03:16
Скажите пожалуйста, как переменную @tableHTML сохранить в файл .htm на сервере?
(не могу сыформировать командную строку)


DECLARE @tableHTML  NVARCHAR(MAX) ;

SET @tableHTML =
N'<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><H1>ккккк на '+convert(varchar(10),getdate(),104)+'</H1>' +
N'<table border="1">' +
N'<tr style="text-align:justify;border-color:#42aaff; background:#a52a2a;"><th>мммм</th><th>вввв</th>' +
N'<th>ппп</th><th>ооо</th><th>a</th><th>b</th><th>c</th><th>d</th><th>e</th><th>f</th>' +
N'<th>g</th></tr>' +
CAST (ISNULL(
(select
td =isnull(gr_pos,'нет'),'',
td =isnull(work_name,'нет'),'',
td =isnull(name_doc,'нет'),'',
td =isnull(code_doc,'нет'),'',
td =isnull([a],'нет'),'',
td =isnull([b],'нет'),'',
td =isnull([c],'нет'),'',
td =isnull([d],'нет'),'',
td =isnull([e],'нет'),'',
td =isnull([f],'нет'),'',
td =isnull([g],'нет'),''
from
tdf..task_report
FOR XML PATH('tr'), TYPE
),'') AS NVARCHAR(MAX)) +
N'</table></html>';


Заранее благодарен.
kDnZP
Дата: 08.06.2011 11:09:54
vah, xp_cmdshell + bcp или через OLE или через CLR
vah
Дата: 08.06.2011 11:56:26
kDnZP
vah, xp_cmdshell + bcp или через OLE или через CLR


а можете примерчик дать?
kDnZP
Дата: 08.06.2011 12:10:12
vah
kDnZP
vah, xp_cmdshell + bcp или через OLE или через CLR


а можете примерчик дать?

Примерчик чего из 3х разных технологий? По bcp есть справка, OLE рядом обсуждается, ну или поиском можно поглядеть. CLR - опять же - документация есть по созданию процедур, а выгрузка в файл задача элементарная.
И опять же, видно, что FAQ вы не читали, а стоит.
Slava_Nik
Дата: 08.06.2011 12:18:25
что-то вроде этого
DECLARE @tableHTML  NVARCHAR(MAX) ;
SET @tableHTML =    N'<HTML><HEAD><meta http-equiv="Content-Type" ></html>';
declare @cmd varchar(500) 
set @cmd='bcp "SELECT '''+ @tableHTML+ ''' " queryout c:\test.html -c -T'  
print @cmd
EXEC xp_cmdshell  @cmd
в твоей переменной нужно будет кавычки задублировать
vah
Дата: 08.06.2011 13:11:25
Slava_Nik
что-то вроде этого
DECLARE @tableHTML  NVARCHAR(MAX) ;
SET @tableHTML =    N'<HTML><HEAD><meta http-equiv="Content-Type" ></html>';
declare @cmd varchar(500) 
set @cmd='bcp "SELECT '''+ @tableHTML+ ''' " queryout c:\test.html -c -T'  
print @cmd
EXEC xp_cmdshell  @cmd
в твоей переменной нужно будет кавычки задублировать


Не работает...
В этой строке 1946295 символов ((
kDnZP
Дата: 08.06.2011 13:44:16
vah,

declare @cmd varchar(500)
заменить на
declare @cmd varchar(max)
vah
Дата: 08.06.2011 13:51:45
kDnZP
vah,

declare @cmd varchar(500)
заменить на
declare @cmd varchar(max)


тогда пишет

Сообщение 214, уровень 16, состояние 201, процедура xp_cmdshell, строка 1
Процедура ожидает параметр "command_string" типа "varchar".
kDnZP
Дата: 08.06.2011 13:56:45
vah, и че? У bcp queryout не единственная опция.
Вы, кстать, ФАК так и не прочитали?
vah
Дата: 08.06.2011 14:04:35
kDnZP
vah, и че? У bcp queryout не единственная опция.
Вы, кстать, ФАК так и не прочитали?


Да там ничего нет