Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/03/2007, 13:07
Avatar de Myakire
Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Tiempo de espera agotado!!!

OK, es facil.

En el administrador coorporativo de SQL Server, a al apartado Procedimientos Almacenados y con botón derecho sereccionas "Nuevo"

Ahi colocas algo como esto:

Código:
CREATE PROCEDURE sp_NomProy_sConsulta
@vFecha1 datetime,
@vFecha2 datetime
AS
          SELECT dbo.E1.CODE, dbo.E1.DIGITO, MSap_1.Medida, MSap_1.Linea, dbo.CAT_TRADE.EQUIPO, dbo.CAT_TRADE.SIDEWALL AS SIDEWALL, AVG(dbo.E1.WEIGHT) AS PPROM, 
                         dbo.E1PESO.PESO AS PESTAND, COUNT(dbo.E1.CODE) AS CANTIDAD, dbo.ES1.WAREHOUSE, MIN(dbo.E1.FECHC) AS FECHMIN 
          FROM dbo.CAT_TRADE INNER JOIN dbo.E1 ON dbo.CAT_TRADE.DIGITO = dbo.E1.DIGITO LEFT OUTER JOIN dbo.E1PESO ON dbo.E1.CODE = dbo.E1PESO.CODE  
                      RIGHT OUTER JOIN [SERV-BCODE].Rast.dbo.opUnicos opUnicos_1 LEFT OUTER JOIN SERV_MONITOREO.Monitoreo.dbo.MSAP MSap_1 ON opUnicos_1.CodigoC = MSap_1.CodigoC ON 
                      dbo.E1.IDETIQ = opUnicos_1.IdEtiq 
         WHERE (dbo.E1.FECHC BETWEEN @vFecha1 and @vFecha2
         GROUP BY dbo.E1.CODE, MSap_1.Medida, dbo.E1.WAREHOUSE, MSap_1.Linea, dbo.E1.DIGITO, dbo.CAT_TRADE.EQUIPO, dbo.CAT_TRADE.SIDEWALL, dbo.E1PESO.PESO 
         HAVING (dbo.E1.CODE > '0') AND (dbo.E1.WAREHOUSE = 1) 
         ORDER BY dbo.E1.CODE, dbo.E1.DIGITO, MSap_1.Medida, MSap_1.Linea
Esa es tu consulta "transformada" en un SP.

Ahora solo debes llamarla así:

rsRecordsetNo2.Open "Exec sp_NomProy_sConsulta '" & vFecha1 & "', '"& vFecha2 & "'", objConn,2,2

Claro que el nombre del procedimiento lo puedes cambiar. Yo les coloco el prefijo sp seguido del mnemonico del proyecto, luego una letra que me indica si es Select, Update, Delete, Insert, etc y al final su nombre

Otra cosa, el rsRecordsetNo2.Requery vuelve a ejecutar la consulta, y no debes de colocarlo enseguida del .Open, sino cuando quieres actualizar el cursor para traerse datos nuevos insertados/actualizados por otro usuario.

Y si, si te recomendaría que cambiaras el DSNLess por OleDb:

ConnString = "Provider=SQLOLEDB.1;Data Source=servidor;Initial Catalog=SERVIDOR;User Id=userTmp;Password=123;"


Saludos