Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

cursor

Estas en el tema de cursor en el foro de SQL Server en Foros del Web. buenas tardes me podrían ayudar o guiarme por donde soluciono el siguiente problema necesito que desde sql se arme el html ,de una consulta de ...
  #1 (permalink)  
Antiguo 25/05/2013, 16:21
 
Fecha de Ingreso: abril-2009
Mensajes: 86
Antigüedad: 15 años
Puntos: 1
cursor

buenas tardes
me podrían ayudar o guiarme por donde soluciono el siguiente problema
necesito que desde sql se arme el html ,de una consulta de n registros
lo trato de hacer con un cursor pero siempre me genera varias html separados cada registro


cualquier ayuda gracias

adjunto el codigo
Código SQL:
Ver original
  1. USE [Prueba]
  2. GO
  3. /****** Object:  StoredProcedure [dbo].[EnviaCorreoServicios]    Script Date: 25/05/2013 04:15:01 p.m. ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ------------------------------------------------------------------------------------------------------
  9. --Descripción:  Stored Procedure encargado de crear la cadena HTML que muestra las tablas de Servicios de Interplus
  10. --              que son enviadas por correo, se encarga también de enviar el correo electrónico.
  11. --Postcondción: Envía correo electrónico con las tablas de los servicios prestados el dia anterior
  12. --Autor: Daniel Alejandro Lopez A.
  13. ------------------------------------------------------------------------------------------------------
  14. ALTER PROCEDURE [dbo].[EnviaCorreoServicios]
  15.     AS
  16.         BEGIN TRY  
  17.         -- Declaracion de variables para el cursor  
  18.         DECLARE @orden AS VARCHAR(MAX),
  19.                 @Tipo_Orden AS VARCHAR(MAX),
  20.                 @ciudad AS VARCHAR (MAX),
  21.                 @cliente AS VARCHAR(MAX),
  22.                 @ImpEncabHTML AS VARCHAR(MAX),
  23.                 @ImpDetalHTML AS VARCHAR(MAX),
  24.                 @MensajeError AS VARCHAR(MAX),
  25.                 @primero AS VARCHAR(MAX),
  26.                 @primero1 AS VARCHAR(MAX),
  27.                 @primero2 AS VARCHAR(MAX),
  28.                 @primero3 AS VARCHAR(MAX),
  29.                 @segunda AS VARCHAR(MAX)
  30.                 -- Declaración del Mensaje de error
  31.                 SET @MensajeError = 'Se produjo un error en la Consulta de la informacion'
  32.                 --Declaracion del cursor
  33.                
  34.                
  35.                
  36.                 DECLARE
  37.                          
  38.                         cReporte CURSOR FOR
  39.                         SELECT  Orden, tipo_orden, Ciudad,Cliente FROM tbl_oservicios
  40.  
  41.                                  -- Apertura del cursor
  42.                                  OPEN cReporte-- Lectura de la primera fila del cursor
  43.                                  
  44.                                  FETCH cReporte INTO @orden,@Tipo_Orden,@ciudad,@cliente
  45.                                  
  46.                                  WHILE (@@FETCH_STATUS = 0 )
  47.                                  BEGIN
  48.                                          --set @pagehtml='hola'
  49.  
  50.                                      --  set @ImpEncabHTML=(select * from tbl_oservicios)
  51.                                     -- SELECT Orden=@orden,Tipo_Orden=@Tipo_Orden,Ciudad=@ciudad,Cliente=@cliente FROM tbl_oservicios
  52.                                
  53.                                 -- set @primero='<td>'+@orden+'</td>'
  54.                                 -- set @primero1='<td>'+@Tipo_Orden+'</td>'
  55.                                 -- set @primero2='<td>'+@ciudad+'</td>'
  56.                                 -- set @primero3='<td>'+@cliente+'</td>'
  57.  
  58.  
  59.                                  
  60.                                  -- Lectura de la siguiente fila del cursor
  61.                                  fetch  NEXT FROM cReporte INTO @orden,@Tipo_Orden,@ciudad,@cliente
  62.                                SELECT @segunda='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  63. <html xmlns="http://www.w3.org/1999/xhtml">
  64. <head>
  65. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  66. <title>**Ordenes Creadas Servicio**</title>
  67. <style type="text/css">
  68. <!--
  69. .Estilo3 {font-size: 18px; font-weight: bold; color: #CCCCCC; }
  70. .Estilo4 {
  71.     color: #FFFFFF;
  72.     font-weight: bold;
  73. }
  74. .Estilo5 {font-size: 16px}
  75. -->
  76. </style>
  77. </head>
  78. <body>
  79. <table width="686" border="2">
  80.  <tr>
  81.    <td width="113" bgcolor="#0066FF"><div align="center" class="Estilo3"># Orden </div></td>
  82.    <td width="169" bgcolor="#0066FF"><div align="center" class="Estilo3">Tipo de Orden</div></td>
  83.    <td width="187" bgcolor="#0066FF"><div align="center" class="Estilo3">Ciudad</div></td>
  84.    <td width="187" bgcolor="#0066FF"><div align="center" class="Estilo3">Cliente</div></td>
  85.  </tr>
  86.  <tr>
  87. ''<td>'+@orden+'</td>''
  88.  </tr>
  89. </table>
  90. </body>
  91. </html>'
  92.  
  93. SELECT @segunda  
  94.                
  95.                           END -- Cierre del cursor
  96.                        
  97.                           CLOSE cReporte
  98.                         -- Liberar los recursos
  99.                         DEALLOCATE cReporte
  100.                    
  101.                 --si no existen recursos
  102.              
  103.                 IF EXISTS (SELECT COUNT(*) FROM tbl_oservicios HAVING COUNT(*)=0)
  104.                    SELECT @MensajeError                        
  105.          END TRY
  106.          BEGIN CATCH        
  107.                 SELECT @MensajeError
  108.                 SELECT ERROR_NUMBER()      
  109.                 SELECT ERROR_LINE()        
  110.                 SELECT ERROR_MESSAGE()        
  111.          END CATCH

Última edición por gnzsoloyo; 25/05/2013 a las 17:27
  #2 (permalink)  
Antiguo 27/05/2013, 08:34
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: cursor

asi como lo tienes siempre va a generar un html por cada registro, tendrias que armar algo asi:

<html>
<head>
<body>
aqui el loop del cursor
<campo>
fin loop
</hmlt>

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: cursor, registro, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:06.