Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Результат запроса в QA вывести на печать (число прочтений - 1071 )
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Результат запроса в QA вывести на печать
12. Ноября 2009 :: 07:01
Печать  
Подскажите, как можно сохранить результаты запроса в Query Analyzer в каком-нибудь файле в удобочитаемом табличном виде и потом распечатать, или сразу распечатать?
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Результат запроса в QA вывести на печать
Ответ #1 - 12. Ноября 2009 :: 07:25
Печать  
Вот вариант, правда довольно громоздкий. Просто кусок кода как пример. Сохраняем в промежуточную таблицу запрос+добавляем html-тэги, потом этот html в файл. Можно и без html, но тогда куча гемора с форматированием.
Код
Выбрать все
  truncate table #htmlout
  insert into #htmlout(line) values('<html xmlns="http://www.w3.org/1999/xhtml">')
  insert into #htmlout(line) values('  <head>')
  insert into #htmlout(line) values('   <style type="text/css">')
  insert into #htmlout(line) values('    .SolidBorder{border-style: solid;border-width: 1px;}')
  insert into #htmlout(line) values('   </style>')
  insert into #htmlout(line) values('  </head>')
  insert into #htmlout(line) values('  <body>')
  insert into #htmlout(line) values('    <table style="width: 100%" class="SolidBorder">')
  insert into #htmlout(line) values('      <tr>')
  insert into #htmlout(line) values('        <th colspan="4" style="text-align: left">Отчет о событиях системы.</th>')
  insert into #htmlout(line) values('      </tr>')
  insert into #htmlout(line) values('      <tr>')
  insert into #htmlout(line) values('        <th style="text-align: left">№</th>')
  insert into #htmlout(line) values('        <th style="text-align: left">Кому</th>')
  insert into #htmlout(line) values('        <th style="text-align: left">Дата записи сообщения</th>')
  insert into #htmlout(line) values('        <th style="text-align: left">Сообщение</th>')
  insert into #htmlout(line) values('      </tr>')


  begin tran

  insert into #htmlout(line)
  select
   tryAdded,121)+'</td><td>'+MESSAGE+'</td></tr>'
  from
    EMAIL_MESSAGES_QUEUE(rowlock holdlock)
  where
    MailSended is null and
    USERNAME = @USERNAME
  order by
    ROW_ID
  if @@error<>0 goto exit_err

  insert into #htmlout(line) values('    </table>')
  insert into #htmlout(line) values('  </body>')
  insert into #htmlout(line) values('</html>')

  insert into tmp_htmlout(sessionid,row_id,line) select @sessionid,row_id,REPLACE(LINE,'$ROW_ID$',cast((ROW_ID-17) as varchar(30))) from #htmlout
  if @@error<>0 goto exit_err

  select @colWidth = max(LEN(LINE)) from tmp_htmlout where sessionid = @sessionid

  select @cmd = 'osql -S SERVERNAME -E -h-1 -w '+cast(@colWidth as varchar(30))+' -Q "SET NOCOUNT ON SELECT cast(LINE as varchar('+cast(@colWidth as varchar(30))+')) FROM Orders.dbo.tmp_htmlout (nolock) where sessionid = '''+@sessionid+'''  order by row_id" -b -u -o '+@html_filename

  exec @err = master..xp_cmdshell @cmd, no_output
 



таблицы
Код
Выбрать все
create table #htmlout(row_id int identity(1,1),line varchar(2000) primary key(row_id))

CREATE TABLE [dbo].[tmp_htmlout] (
	[SESSIONID] [varchar] (120)  NOT NULL ,
	[row_id] [int] NOT NULL ,
	[LINE] [varchar] (2000) NULL
) 

  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Результат запроса в QA вывести на печать
Ответ #2 - 12. Ноября 2009 :: 07:36
Печать  
Можно copy paste и в excel
либо в таблицу 1с ( только копировать на русском языке )

PS Также вроде на  sql.ru в faq вроде есть как вывести резудьтаты запроса в файл.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать