Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Adriano MSB

[Resolvido] Grande volume de informação em variaveis.

Recommended Posts

Pessoal, eu criei um job que envia um email todo dia para o pessoal da empresa, com um resumo geral da empresa.

 

A questão é, eu utilizo variaveis do tipo varchar(8000) para armazenar o html que irá no email, o problema é que variaveis desse tamanho não estão sendo sulficiente para comportar o html criado.

 

Tem alguma forma de usar um tipo de variavel que comporte mais dados. Ou teria alguma forma de trabalhar com variaveis do tipo text.

 

 

Vlw.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adriano MSB,

 

nao sei como esta mandando este email, mas você pode mandar emails a partir do SQL.

eu uso a procedure:

 

DECLARE @tableHTML1  NVARCHAR(MAX);
			SET @tableHTML1 =
			N'<H2>Ola novamente!!!</H2><br>' +
			N'<H3>TITULO DO HTML </H3><br>' +
			N'<table border="1">' +
			N'<tr><th>CAMPO CHAVE </th><th>Título Banner</th>' +
			N'<th>Frase Banner</th><th>Data Publicação</th>' +
			Cast ( ( Select td = b.table_id,		 '',
							td = b.titulo_banner  ,		 '',
							td = b.frase_banner   ,		 '',
							td = convert(varchar, a.data_publicacao, 103),		 ''
			from database.dbo.tabelaA a 
			inner join atabase.dbo.tabelaB b 
			on a.table_id = b.table_id 
			where convert(varchar, a.data_publicacao, 111) = convert(varchar, getdate(), 111)
			order by b.table_id asc
			For XML PATH('tr'), type ) as nvarchar(max) ) + 
			N'</table>' + 
			N'<br><br>' +
			N'<table border="3">' +
			N'<tr><th>Último registro para atualização</th>' +
			Cast ( ( Select top 1 td = convert(varchar, data_publicacao, 103),	''
			from  database.dbo.tabela where atualizado = 0
			order by data_publicacao desc
			For XML PATH('tr'), type ) as nvarchar(max) ) + 
			N'</table>' + 
			N'<br><br>' +
			N'<br><br><p align="right"><font face="Arial" size="2" color="blue"> rodapé </font></p>';
 

-- procedure para envio de email
			EXEC msdb.dbo.sp_send_dbmail
			@profile_name = 'profile',
			@body_format = 'HTML',
			@recipients = 'nome@dominio.com.br',
			@body = @tableHTML1,
			@subject = 'assunto',
			@copy_recipients = 'nome@dominio.com.br;nome@dominio.com.br'

Este modo quem me passou foi um colega que trampou comigo (Célio Rocha) que com ctza vai kerer os créditos :P

 

Tem também a procedure sp_makewebtask para salvar o resultado de um select ou proc em um arquivo HTML

por exemplo:

EXECUTE sp_makewebtask @outputfile = 'C:\TESTE1.HTM',
@query = 'SELECT * FROM tabela'
GO

você precisa ter permissao na area Web Assistant Procedures para usar esta procedure, caso nao tenha, use a sintaxe abaixo:

 

RECONFIGURE 
GO
sp_configure 'show advanced options', 1 
GO
RECONFIGURE 
GO
sp_configure 'Web Assistant Procedures', 1
GO
RECONFIGURE 
GO

 

Espero que te ajude.

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

jus2ka, valeu, consegui fazer.

 

na verdade, o meu problema não era com o envio em si, e sim em colocar o html dentro de uma variavel que coubesse, dai baseado no exemplo mudei as minhas variaveis de varchar(8000) para varchar(max) e funcionou tudo certo.

 

brigadão pela ajuda.

 

agora se pudar dar uma luz em outra pergunda que postei dias atraz eu agradeceria,

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.