Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
YarmakIN
Mnior, что я делаю неправильно:
CREATE FUNCTION [RptBuh].f_Commission_GetRest () RETURNS TABLE AS RETURN
...
SET	 @Command	= 'bcp "' + 
	Replace(Replace(dbo.fnExcelQuery('ReportsDB.RptBuh.f_Commission_GetRest()'),'"',''''''),'
','')			+ '" queryout "C:\1.xml" -T -q -w -r -t'
Ага, неужели скобки, являются частью имени объекта базы?! А ещё, как вы видели, одновременно получить колонки для любой БД не так просто. Либо динамический SQL, либо создать вьюшку на мета-даные всех нужных баз. Но, имя базы задавать можно, если сама dbo.fnExcelQuery в ней находится. :)
/*ReportsDB.*/dbo.fnExcelQuery('ReportsDB.RptBuh.f_Commission_GetRest')
Что-то вы спотыкаетесь на совсем простых вещах, там далее могут намного более "крутые" вопросы возникнуть.

YarmakIN
А нельзя ли как то глянуть пример такого "чтения схемы"?
Лучше сразу пример, но приведу не раньше панидёрнига.

YarmakIN
Я еще раз уточняю, какая у меня сложность - именно динамически генерировать шапку документа в шаблоне, т.е. простановка дат и прочей лабуды.
Если шапка поддаётся автоматизации (практически везде похожа или общая структура документа одинаковая), то соответственно надо допилить функцию, соответственно задаче. Надо знать основы работы с XML в сиквеле, ну понимать как работает функция досконально и её тонкости это точно.
Если шапку практически одинакова, можно задавать её в качестве параметра функции и там тупо вставлять.

На счёт Excel и ReportService.
Совершенно разные подходы и что где лучше, это зависит от задачи.
У "нас" лично более "негативный" опыт работы с данными вещами. Большей частью конечно из-за кривых рук, но главное использование не к месту и отсутствием существенных преимуществ. Большей частью это неправильное распределение ответственности. Излишний функционал, он не то чтобы просто неэффективен или просто лишний груз, он бывает очень вреден и опасен.
ReportService можно запрограммировать на динамический запрос, но надо поддерживать код в языке среды и саму среду. В итоге клиент получает возможность получать данные по требованию. Но если надо делать N обязательных жёстких отчётов, подход становится мягко говоря (еле сдерживаюсь) менее выгодным.
Не раз упоминал, что лучше хорошенько подумать перед тем как принять решение (продолжать) использовать дополнительную среду. Но если среда уже активно используется, то очень глупо отказываться от её подходящего использования.
Всё зависит от задачи.

PS: Чёрд, кажись когда отправлял текст функции парсер сьел некоторые символы, в понедельник проверю и если чё поправлю.
25 дек 09, 14:36    [8119069]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
YarmakIN
Member

Откуда: Уфа
Сообщений: 321
Mnior

Что-то вы спотыкаетесь на совсем простых вещах, там далее могут намного более "крутые" вопросы возникнуть.

само собой. я "в теме" второй день, надеюсь мне простят "спотыки".

без скобок кстати тоже не работает :(
25 дек 09, 14:51    [8119230]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
YarmakIN
Member

Откуда: Уфа
Сообщений: 321
Error = [Microsoft][SQL Native Client][SQL Server]Parameters were not supplied for the function 'ReportsDB.RptBuh.f_Commission_GetRest'.
25 дек 09, 14:53    [8119253]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
CREATE FUNCTION [dbo].[fnExcelQuery] (
	 @Object	SysName
	,@Query		NVarChar(max)
) RETURNS NVarChar(max) AS BEGIN RETURN (
SELECT	(
SELECT	  CASE	WHEN C.column_id = 1
		THEN ' '
		ELSE '
	,'	END + 'NULL AS [text()],'
	+ CASE	WHEN C.system_type_id IN (48,52,56,59,60,62,106,108,122,127)
							THEN '''Number''  '
		WHEN C.system_type_id IN (58,61)	THEN '''DateTime'''
		WHEN C.system_type_id = 104		THEN '''Boolean'' '
							ELSE '''String''  '
		END + 'AS [Cell/Data/@s:Type],'
	+ QuoteName(C.name) + Space(Max(Len(C.name))OVER() - Len(C.name)) + ' AS [Cell/Data/text()]'
		AS [Row/text()]
	, IsNull('<Column s:StyleID="'
	+ CASE	WHEN C.system_type_id IN (48,52,56,59,62,106,108,127)
							THEN 'Number'
		WHEN C.system_type_id IN (60,122)	THEN 'Currency'
		WHEN C.system_type_id IN (58,61)	THEN 'DateTime'
		WHEN C.system_type_id = 104		THEN 'Boolean'
		END + '" />','<Column />')
		AS [Style/text()]
	,'<Cell><Data s:Type="String">' + C.name + '</Data></Cell>'
		AS [Name/text()]
FROM	sys.columns C
WHERE	C.[object_id] = Object_ID(@Object)
ORDER BY C.column_id
FOR XML Path(''),Type).query('(<Row>{/Row/text()}</Row>,<Style>{/Style/text()}</Style>,<Name>{/Name/text()}</Name>)').value('fn:concat("
;WITH XMLNAMESPACES(Default ''urn:schemas-microsoft-com:office:spreadsheet'',''urn:schemas-microsoft-com:office:spreadsheet'' AS s)
SELECT	N''<?xml version=""1.0"" encoding=""UTF-16""?><?mso-application progid=""Excel.Sheet""?>'' + Convert(NVarChar(max),IsNull((
SELECT	",(/Row/text())[1],"
FROM	",sql:variable("@Object"),sql:variable("@Query"),"
FOR XML Path(''Row''),Root(''Table''),Type),'''').query(''
<Workbook xmlns=""urn:schemas-microsoft-com:office:spreadsheet"" xmlns:s=""urn:schemas-microsoft-com:office:spreadsheet"">
 <Styles>
  <Style s:ID=""Boolean""><NumberFormat s:Format=""True/False"" /></Style>
  <Style s:ID=""Currency""><NumberFormat s:Format=""Currency"" /></Style>
  <Style s:ID=""Number""><NumberFormat s:Format=""General Number"" /></Style>
  <Style s:ID=""DateTime""><NumberFormat s:Format=""General Date"" /></Style>
 </Styles>
 <Worksheet s:Name=""",sql:variable("@Object"),""">
  <Table>
   ",(/Style/text())[1],"   &lt;Row&gt;
   ",(/Name/text())[1],"   &lt;/Row&gt;
   {/Table/Row}
  </Table>
 </Worksheet>
</Workbook>''))")','NVarChar(max)')
) END
GO
SET	 @Command	= 'bcp "' + 
	Replace(Replace(dbo.fnExcelQuery('ReportsDB.RptBuh.f_Commission_GetRest','(<Params>) WHERE <Filter>'),'"',''''''),'
',' ')			+ '" queryout "C:\1.xml" -T -q -w -r -t'
Ой чувствую, я за вас всю работу так сделаю.
29 дек 09, 11:46    [8131232]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
YarmakIN
Member

Откуда: Уфа
Сообщений: 321
Mnior, спасибо огромное!
Я думаю, что для вас возможность помочь и поделиться знаниями - это позитив.
Ну и ... страна вас не забудет :)
29 дек 09, 13:42    [8132300]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Mnior
'bcp ... -T -q -w -r -t'
Чёрд, откуда это!
'bcp ... -T -q -w'
Не пишите никогда '-r -t' - вы бы видели как "колбасит" при этом bcp.
Читобы не пихать "лишние" символы в поток, без форматного файла никак. Но это уже не по теме.
29 дек 09, 18:36    [8134664]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
rainebove2
Member

Откуда: Москва
Сообщений: 34
А как залить данные в excel из SQL server 2005 чтобы не в один столбец а в несколько, вот так работает:
INSERT OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=c:\test2.xls; Extended Properties="Excel 8.0;HDR=no;IMEX=0"')...[Sheet2$] VALUES (12)  
а так нет
INSERT OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=c:\test2.xls; Extended Properties="Excel 8.0;HDR=no;IMEX=0"')...[Sheet2$F3] VALUES (12) 
13 янв 10, 12:58    [8176683]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
aleks2
Guest
Возможно так?

INSERT OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=c:\test2.xls; Extended Properties="Excel 8.0;HDR=no;IMEX=0"')...[Sheet2$] VALUES (12, 13)
13 янв 10, 13:33    [8177008]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
rainebove2
Member

Откуда: Москва
Сообщений: 34
aleks2
Возможно так?

INSERT OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=c:\test2.xls; Extended Properties="Excel 8.0;HDR=no;IMEX=0"')...[Sheet2$] VALUES (12, 13)

Нет так ругается:
Insert Error: Column name or number of supplied values does not match table definition.
Правилmyj должно быть так:
13 янв 10, 14:10    [8177437]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
rainebove2
Member

Откуда: Москва
Сообщений: 34
Извиняюсь случайно нажал ctnrl+enter :)
Правтльно должно быть так:
13 янв 10, 14:12    [8177451]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
rainebove2
Member

Откуда: Москва
Сообщений: 34
INSERT OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=c:\test2.xls; Extended Properties="Excel 8.0;HDR=no;IMEX=0"')...[Sheet2$F1] VALUES (12) 
но так почему то не работает, ошибка следующая:
The OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" does not contain the table "Sheet2$F1". The table either does not exist or the current user does not have permissions on that table.
13 янв 10, 14:23    [8177570]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
Glory
Member

Откуда:
Сообщений: 104760
rainebove2
INSERT OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=c:\test2.xls; Extended Properties="Excel 8.0;HDR=no;IMEX=0"')...[Sheet2$F1] VALUES (12) 
но так почему то не работает, ошибка следующая:
The OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" does not contain the table "Sheet2$F1". The table either does not exist or the current user does not have permissions on that table.

А из сообщения непонятно ? У вас разве есть лист с назваением "Sheet2$F1" ?
13 янв 10, 14:26    [8177586]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
rainebove2
Member

Откуда: Москва
Сообщений: 34
Glory

А из сообщения непонятно ? У вас разве есть лист с назваением "Sheet2$F1" ?

Это понятно. А как правильно указать столбец в который нужно залить данные???
13 янв 10, 14:37    [8177688]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
Glory
Member

Откуда:
Сообщений: 104760
rainebove2
Glory

А из сообщения непонятно ? У вас разве есть лист с назваением "Sheet2$F1" ?

Это понятно. А как правильно указать столбец в который нужно залить данные???

Данные "заливаются" в записи
А количество столбцов определяется заранее, при создании листа
А значения для столбцов задаются согласно синтаксису
INSERT <table_name> (<columns list>) VALUES(<values list>)
13 янв 10, 14:40    [8177718]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
А у меня dbo.fnExcelQuery отваливается
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.


Может это быть связанно с нетривиальными именами столбцов ?
29 апр 13, 09:56    [14242368]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Типа таких

[COLNAME 100% COLNAME0.9 COLNAME]
29 апр 13, 09:58    [14242374]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Microsoft SQL Server 2005 - 9.00.5069.00 (X64) Aug 22 2012 18:02:46 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)
29 апр 13, 10:03    [14242413]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 2994
Cammomile, нет. Это говорит о том, что у вас переменная объявлена дважды
29 апр 13, 10:41    [14242692]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Cammomile
Может это быть связанно с нетривиальными именами столбцов ?
Нет, это потому что кто-то невнимательный.
Перепроверяйте.
29 апр 13, 10:46    [14242722]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Дело в том, что у _меня_ ничего не объявляется.

Я скопипсатил эту функцию. До конца, честно признаюсь, не понимаю, так как пока не разбираюсь в довольно громодких конструкциях XQuery.

Затем делаю просто

DECLARE @q nvarchar(max) 
SELECT @q= dbo.fnExcelQuery('TestTable')
EXEC (@q)


Получаю текст XML, как задумано


Запускаю так
DECLARE @q nvarchar(max) 
SELECT @q= dbo.fnExcelQuery('Schema.Production_Table')
EXEC (@q)


отваливается

Msg 102, Level 15, State 1, Line 103
Incorrect syntax near 's'.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 132, Level 15, State 1, Line 103
The label 's' has already been declared. Label names must be unique within a query batch or stored procedure.
Msg 105, Level 15, State 1, Line 107
Unclosed quotation mark after the character string '))'.
29 апр 13, 10:55    [14242770]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Cammomile
Получаю текст XML, как задумано

А XML-и уже можно стало выполнять через EXEC (@q) ?
29 апр 13, 11:00    [14242810]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Насколько я понял автора сей нетленки - функция возвращает запрос. А запрос возвращает XML

Вот к примеру это работает наотлично

IF OBJECT_ID('TMP.MyLittle_Pony') > 0 DROP TABLE TMP.MyLittle_Pony 

CREATE TABLE TMP.MyLittle_Pony(
  Id        Int, 
  FirstName Varchar(100), 
  LastName  Varchar(100), 
  PonyType  Varchar(100), 
  IsWinged  bit, 
  IsHorned  bit,
  IsCmarked bit 
)

INSERT INTO TMP.MyLittle_Pony
SELECT 1, 'Princess', 'Celestia', 'Celestial', 1,1,1 
UNION   
SELECT 2, 'Pinkamina', 'Pie', 'Earth', 0,0,1 
UNION   
SELECT 3, 'Rainbow', 'Dash', 'Pegasi', 1,0,1 
UNION   
SELECT 4, 'Rarity', '', 'Unicorn', 0,1,1 
UNION   
SELECT 5, 'Jack', 'Apple', 'Earth', 0,0,1 
UNION   
SELECT 6, 'Fluttershy', '', 'Pegasi', 1,0,1 
UNION   
SELECT 7, 'Twilight', 'Sparkle', 'Unicorn', 1,0,1 


DECLARE @q nvarchar(max) 

SELECT @q= dbo.fnExcelQuery('[TMP].[MyLittle_Pony]')
PRINT @q
EXEC (@q)
29 апр 13, 11:22    [14242975]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Cammomile
Вот к примеру это работает наотлично

Msg 313, Level 16, State 2, Line 31
An insufficient number of arguments were supplied for the procedure or function dbo.fnExcelQuery.
29 апр 13, 11:31    [14243039]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
У меня "первая" версия. Или она не актуальна?
CREATE FUNCTION [dbo].[fnExcelQuery] (
	 [b]@Object	SysName[/b]
) RETURNS NVarChar(max) AS BEGIN RETURN (
SELECT	(
SELECT	  CASE	WHEN C.column_id = 1
		THEN ' '
		ELSE '
	,'	END + 'NULL AS [text()],'
	+ CASE	WHEN C.system_type_id IN (48,52,56,59,60,62,106,108,122,127)
							THEN '''Number''  '
		WHEN C.system_type_id IN (58,61)	THEN '''DateTime'''
		WHEN C.system_type_id = 104		THEN '''Boolean'' '
							ELSE '''String''  '
		END + 'AS [Cell/Data/@s:Type],'
	+ QuoteName(C.name) + Space(Max(Len(C.name))OVER() - Len(C.name)) + ' AS [Cell/Data/text()]'
		AS [Row/text()]
	, IsNull('<Column s:StyleID="'
	+ CASE	WHEN C.system_type_id IN (48,52,56,59,62,106,108,127)
							THEN 'Number'
		WHEN C.system_type_id IN (60,122)	THEN 'Currency'
		WHEN C.system_type_id IN (58,61)	THEN 'DateTime'
		WHEN C.system_type_id = 104		THEN 'Boolean'
		END + '" />','<Column />')
		AS [Style/text()]
	,'<Cell><Data s:Type="String">' + C.name + '</Data></Cell>'
		AS [Name/text()]
FROM	sys.columns C
WHERE	C.[object_id] = Object_ID(@Object)
ORDER BY C.column_id
FOR XML Path(''),Type).query('(<Row>{/Row/text()}</Row>,<Style>{/Style/text()}</Style>,<Name>{/Name/text()}</Name>)').value('fn:concat("
;WITH XMLNAMESPACES(Default ''urn:schemas-microsoft-com:office:spreadsheet'',''urn:schemas-microsoft-com:office:spreadsheet'' AS s)
SELECT	N''<?xml version=""1.0"" encoding=""UTF-16""?><?mso-application progid=""Excel.Sheet""?>'' + Convert(NVarChar(max),IsNull((
SELECT	",(/Row/text())[1],"
FROM	",sql:variable("@Object")," WITH(NoLock)
FOR XML Path(''Row''),Root(''Table''),Type),'''').query(''
<Workbook xmlns=""urn:schemas-microsoft-com:office:spreadsheet"" xmlns:s=""urn:schemas-microsoft-com:office:spreadsheet"">
 <Styles>
  <Style s:ID=""Boolean""><NumberFormat s:Format=""True/False"" /></Style>
  <Style s:ID=""Currency""><NumberFormat s:Format=""Currency"" /></Style>
  <Style s:ID=""Number""><NumberFormat s:Format=""General Number"" /></Style>
  <Style s:ID=""DateTime""><NumberFormat s:Format=""General Date"" /></Style>
 </Styles>
 <Worksheet s:Name=""",sql:variable("@Object"),""">
  <Table>
   ",(/Style/text())[1],"
   <Row>",(/Name/text())[1],"</Row>
   {/Table/Row}
  </Table>
 </Worksheet>
</Workbook>''))")','NVarChar(max)')
) END
GO
29 апр 13, 11:35    [14243079]     Ответить | Цитировать Сообщить модератору
 Re: Автоматизация вывода отчетов в файлы xls (Excel)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Cammomile
У меня "первая" версия. Или она не актуальна?

И вы уже посмотрели, что получили в переменной @q в ошибочном запросе ?
29 апр 13, 11:40    [14243130]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить