Ver Mensaje Individual
  #7 (permalink)  
Antiguo 15/09/2010, 10:20
Joel251
 
Fecha de Ingreso: septiembre-2010
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Error con store procedure en visual.net

Es este:

Código SQL:
Ver original
  1. CREATE             PROCEDURE [dbo].[Prueba]
  2.  
  3.  @ID_CAMPANA NVARCHAR (10)
  4.  
  5. AS
  6.  
  7. DECLARE @Habilitar_CDN nvarchar(10),
  8.      @Suscriptor NUMERIC (9),
  9.      @Fecha_Facturacion nvarchar (10),
  10.      @Fecha_Historico nvarchar (10),
  11.      @LAST DECIMAL (9,2) ,
  12.      @Metodo_de_pago nvarchar (50) ,
  13.      @Riesgo nvarchar (10) ,
  14.      @Numero_telefonico CHAR (10),
  15.     @Futuro_uso CHAR (10) ,
  16.     @Mensaje CHAR (50)
  17.  
  18. IF  EXISTS(  SELECT * FROM  [Table_Campana]   WHERE    ([Table_Campana].ID_CAMPANA  =  @ID_CAMPANA)   AND ( [Table_Campana].Habilitar_Campana  = 'SI' ))
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.     BEGIN
  26.      
  27.    -- SQL statements to update tables and process order.
  28. ----- Iniciamos Operacion con Cursor
  29. ------- declaramos las variables
  30.  
  31.  
  32.     DECLARE CURSOR_CONTACTO cursor FAST_FORWARD FOR
  33.  
  34.     SELECT     Table_Contactos.Suscriptor, Table_Contactos.Fecha_Facturacion, Table_Contactos.Fecha_Historico, Table_Contactos.[LAST],
  35.                       Table_Contactos.Metodo_de_Pago, Table_Contactos.Riesgo, Table_Contactos.Numero_telefonico, Table_Campana.Habilitar_CDN,
  36.                       Table_Contactos.Futuro_uso, Table_Campana.Mensaje,Table_Contactos.ID_Campana
  37.     FROM         Table_Campana INNER JOIN
  38.                       Table_Contactos ON Table_Campana.ID_Campana = Table_Contactos.ID_Campana AND Table_Contactos.ID_Campana= @ID_CAMPANA INNER JOIN
  39.                          Table_Eventos_Llamada ON Table_Contactos.Contador_Ocupado <
  40.                              (SELECT     [Maximo_numero_ Eventos]
  41.                                FROM          [Table_Eventos_llamada]
  42.                                WHERE      [Table_Eventos_llamada].ID_Evento = 1) AND Table_Contactos.Contador_Contestadora <
  43.                             (SELECT     [Maximo_numero_ Eventos]
  44.                              FROM          [Table_Eventos_llamada]
  45.                              WHERE      [Table_Eventos_llamada].ID_Evento = 4) AND Table_Contactos.Contador_No_responde <
  46.                               (SELECT     [Maximo_numero_ Eventos]
  47.                              FROM          [Table_Eventos_llamada]
  48.                              WHERE      [Table_Eventos_llamada].ID_Evento = 2) AND Table_Contactos.Contador_Respondio <
  49.                               (SELECT     [Maximo_numero_ Eventos]
  50.                              FROM          [Table_Eventos_llamada]
  51.                                WHERE      [Table_Eventos_llamada].ID_Evento = 3)
  52.         GROUP BY Table_Contactos.Suscriptor, Table_Contactos.Fecha_Facturacion, Table_Contactos.Fecha_Historico, Table_Contactos.[LAST],
  53.                           Table_Contactos.Metodo_de_Pago, Table_Contactos.Riesgo, Table_Contactos.Numero_telefonico, Table_Campana.Habilitar_CDN,
  54.                         Table_Contactos.Futuro_uso,Table_Campana.Mensaje ,Table_Contactos.ID_Campana, Table_Contactos.Estatus_Llamada
  55.     HAVING      (Table_Contactos.Estatus_Llamada =N'pendiente')
  56.  
  57.  
  58.  
  59.     OPEN CURSOR_CONTACTO
  60.          -- Avanzamos un registro y cargamos en las variables los valores encontrados en el primer registro
  61.  
  62.     FETCH NEXT FROM CURSOR_CONTACTO
  63.     INTO @Suscriptor,@Fecha_Facturacion,@Fecha_Historico,@LAST,@Metodo_de_pago,@Riesgo,@Numero_telefonico,@Habilitar_CDN,@Futuro_uso,@Mensaje, @ID_CAMPANA ----@Estatus_Llamada
  64.    
  65.  
  66.  
  67.     IF @@FETCH_STATUS = 0  AND (@Suscriptor <> 0 OR @Suscriptor <> NULL)
  68.  
  69.     BEGIN
  70.         BEGIN  TRANSACTION
  71.  
  72.     --Coloca el valor   'procesando'  en el campo [Table_Contactos].estatus_llamada para indicar  que el registro esta siendo usado para realizar una llamada
  73.  
  74.         UPDATE    [Table_Contactos]
  75.         SET            [Table_Contactos].estatus_llamada = 'procesando'  
  76.         WHERE     [Table_Contactos].estatus_llamada = 'pendiente' AND   Table_Contactos.Suscriptor  = @Suscriptor    COMMIT TRANSACTION
  77.  
  78.     END
  79.    
  80.  
  81.    
  82.      PRINT 1
  83.    
  84.  
  85.  
  86.     WHILE @@FETCH_STATUS = 0 AND @Suscriptor = 0
  87.     -----Actualizamos el registro obtenido en le campo Estatus_LLamada
  88.  
  89.    
  90.    
  91.  
  92.  
  93.  
  94.  
  95.  
  96.     -- cerramos el cursor
  97.             close  CURSOR_CONTACTO---CURSORITO
  98.       deallocate  CURSOR_CONTACTO----CURSORITO
  99.  
  100.  
  101.  
  102.  
  103.    
  104.    
  105. --  PRINT @Suscriptor
  106. --  PRINT @Fecha_Facturacion
  107. --  PRINT @Fecha_Historico
  108. --  PRINT @Last,@Metodo_de_pago
  109.     PRINT @Riesgo
  110.  
  111.        
  112. --  PRINT @Suscriptor
  113. --  PRINT @Fecha_Facturacion
  114.  -- PRINT @Fecha_Historico
  115. --  PRINT @Last
  116. --  PRINT @Metodo_de_pago
  117.  -- PRINT @Riesgo
  118. --  PRINT @Numero_telefonico
  119.    
  120.  
  121. --  PRINT @Habilitar_CDN
  122. --  PRINT @Futuro_uso
  123. --  PRINT @Numero_telefonico
  124. --  PRINT @Habilitar_CDN
  125. --  PRINT @Futuro_uso
  126.  -- PRINT @ID_CAMPANA
  127.  
  128. ---Se cambio este Select
  129. ------  SELECT @Suscriptor,@Fecha_Facturacion,@Fecha_Historico,@Last,@Metodo_de_pago,@Riesgo,@Numero_telefonico,@Habilitar_CDN,@Futuro_uso,@ID_CAMPANA
  130.  
  131. -----Este Select es de Telmo
  132. --  SELECT @Suscriptor AS Suscriptor,@Fecha_Facturacion  AS FechaFacturacion,@Fecha_Historico AS FechaHistorico,@Last AS MontoFacturado,@Metodo_de_pago AS MetodoDePago,@Riesgo AS Riesgo,@Numero_telefonico AS NumeroTelefonico,@Habilitar_CDN AS HabilitarCDN,@Futuro_uso AS FuturoUso,--@ID_CAMPANA AS HabilitarCampania,/ @Mensaje AS Mensaje ,@ID_CAMPANA AS CampaniaId
  133. ---SELECT @Suscriptor AS Suscriptor,@Fecha_Facturacion  AS FechaFacturacion,@Fecha_Historico AS FechaHistorico,@Last AS MontoFacturado,@Metodo_de_pago AS MetodoDePago,@Riesgo AS Riesgo,@Numero_telefonico AS NumeroTelefonico,@Habilitar_CDN AS HabilitarCDN,@Futuro_uso AS FuturoUso, @Mensaje AS Mensaje ,@ID_CAMPANA AS CampaniaId
  134.    
  135. SELECT ISNULL(@Suscriptor,0) AS Suscriptor, ISNULL(@Fecha_Facturacion,0)  AS FechaFacturacion, ISNULL(@Fecha_Historico,0) AS FechaHistorico, ISNULL(@LAST,0) AS MontoFacturado, ISNULL(@Metodo_de_pago,0) AS MetodoDePago, ISNULL(@Riesgo,0) AS Riesgo,@Numero_telefonico AS NumeroTelefonico,@Habilitar_CDN AS HabilitarCDN,@Futuro_uso AS FuturoUso, @Mensaje AS Mensaje ,1 AS CampaniaId
  136.    
  137.     RETURN
  138.  
  139.     SELECT @Suscriptor = 0
  140.    
  141.  
  142.  
  143.  
  144.     END
  145.  
  146.  ELSE
  147.  
  148. BEGIN  
  149.  
  150.  PRINT @ID_CAMPANA + 'no'
  151.  
  152.  
  153. ---Se cambio este Select
  154.  
  155. -----SELECT @Suscriptor,@Fecha_Facturacion,@Fecha_Historico,@Last,@Metodo_de_pago,@Riesgo,@Numero_telefonico,@Habilitar_CDN,@Futuro_uso,@ID_CAMPANA
  156.  
  157. -----Este Select es de Telmo
  158.     ---SELECT @Suscriptor AS Suscriptor,@Fecha_Facturacion  AS FechaFacturacion,@Fecha_Historico AS FechaHistorico,@Last AS MontoFacturado,@Metodo_de_pago AS MetodoDePago,@Riesgo AS Riesgo,@Numero_telefonico AS NumeroTelefonico,@Habilitar_CDN AS HabilitarCDN,@Futuro_uso AS FuturoUso,@ID_CAMPANA AS HabilitarCampania,---@Mensaje AS Mensaje ,@ID_CAMPANA AS CampaniaId
  159. ---SELECT @Suscriptor AS Suscriptor,@Fecha_Facturacion  AS FechaFacturacion,@Fecha_Historico AS FechaHistorico,@Last AS MontoFacturado,@Metodo_de_pago AS MetodoDePago,@Riesgo AS Riesgo,@Numero_telefonico AS NumeroTelefonico,@Habilitar_CDN AS HabilitarCDN,@Futuro_uso AS FuturoUso, @Mensaje AS Mensaje ,@ID_CAMPANA AS CampaniaId
  160.  
  161.  
  162. SELECT ISNULL(@Suscriptor,0) AS Suscriptor, ISNULL(@Fecha_Facturacion,0)  AS FechaFacturacion, ISNULL(@Fecha_Historico,0) AS FechaHistorico, ISNULL(@LAST,0) AS MontoFacturado, ISNULL(@Metodo_de_pago,0) AS MetodoDePago, ISNULL(@Riesgo,0) AS Riesgo,@Numero_telefonico AS NumeroTelefonico,@Habilitar_CDN AS HabilitarCDN,@Futuro_uso AS FuturoUso, @Mensaje AS Mensaje ,@ID_CAMPANA AS CampaniaId
  163.  
  164.  
  165.  
  166.  
  167.  
  168. END
  169.  
  170.  
  171. ---,@Fecha_Historico,@Last,@Metodo_de_pago,@Riesgo,@Numero_telefonico,@Habilitar_CDN,@Futuro_uso,@ID_CAMPANA
  172. GO