tengo el siguiente store procedure :
Código SQL:
Ver original
ALTER PROCEDURE dbo.WQ_sp_RangoFechasBateria @tipo NUMERIC(9)=0 AS DECLARE @FechaInicial datetime ,@FechaFinal datetime, @dias NUMERIC(9),@FechaFinal2 datetime --obtener el primer dia en que se contesto la bateria SET @FechaInicial = (SELECT MIN(dfecha) FROM bateriarespuestasoperacion WHERE nidpregunta IN (SELECT nidpregunta FROM catbateriapreguntas WHERE cestatus='A' AND nidtipobateria=@tipo) ) --obtener el total de preguntas a responder SET @dias = (SELECT COUNT(nidpregunta) FROM catbateriapreguntas WHERE cestatus='A' AND nidtipobateria=@tipo) --obtener el ultimo dia en que se deben de responder las preguntas SET @FechaFinal = dateadd(dd, (@dias/3)+1, @FechaInicial) --obetner el ultimo dia en caso de que sea mayor al estimado SET @FechaFinal2 = (SELECT MAX(dfecha) FROM bateriarespuestasoperacion WHERE nidpregunta IN (SELECT nidpregunta FROM catbateriapreguntas WHERE cestatus='A' AND nidtipobateria=@tipo) ) IF @FechaFinal2>@FechaFinal BEGIN SET @FechaFinal = @FechaFinal2 END --borrar informacion anterior DELETE FROM dbo.FechasRpt5 WHERE nIdTipoBateria = @tipo --insertar todas las fechas while @FechaInicial < @FechaFinal BEGIN INSERT INTO dbo.FechasRpt5 VALUES (@FechaInicial,@tipo) SET @FechaInicial = dateadd(dd, 1, @FechaInicial) END SELECT CONVERT(CHAR(10),dFecha,103)AS Fecha,@dias AS Total FROM FechasRpt5 WHERE nIdTipoBateria = @tipo ORDER BY dFecha GO
y funciona de maravilla en el servidor.
pero como desarrollo tengo una copia local en un equipo con iis7 y sql2000, por lo tanto tengo que utilizar la sig cadena de conexion:
Código ASP:
Ver original
nString = "Provider=SQLOLEDB.1;Password=aaa;Persist Security Info=True;User ID=sa;Initial Catalog=dbBaterias;Data Source=JOCHMXLAP"
mientras q en el servidor la cadena es :
Código ASP:
Ver original
nString = "DRIVER={SQL Server};SERVER=mainframe;DATABASE=dbBaterias;UID=sa;PWD=aaa"
ahora bien lo que hace el store, es montar un rango de fechas (como 30 o 40 fechas) en una tabla y hacer un select al final que me traiga esa informacion
y lo mando a llamar de la siguiente forma:
Código ASP:
Ver original
strSQL = "Exec " & vBD & "WQ_sp_RangoFechasBateria " & cboBateria set rsFechas = createobject("adodb.recordset") rsFechas.open strSQL, adodbconnection if err then MandarError ("Ocurrio un error" & err.description) if not rsFechas.eof then do while not rsFechas.eof vEncabezadoTabla = vEncabezadoTabla & "<th class=""textovertical""><font size=""1px"" color=blue>"& server.HTMLEncode(replace(rsFechas("Fecha"),"/"," - ")) & "</font></th>" TotalPreguntas = rsFechas("Total") rsFechas.movenext TotalFechas = TotalFechas + 1 redim preserve TotalC(TotalFechas), TotalI(TotalFechas) loop end if
entonces cuando lo pruebo en el trabajo (server) funciona perfectamente.
pero en mi lap con Win7 y iis7 me tira el siguiente error:
Código HTML:
Ver original
ADODB.Recordset error '800a0e78' La operación no está permitida si el objeto está cerrado.
entonces investigue y trate de probar con nextrecordset, pero me tira :
Código HTML:
Ver original
El proveedor actual no admite que una única ejecución devuelva múltiples recordsets.
entonces tengo la idea que es el proveedor el causante de todo este mal.
mi pregunta concreta es ¿Puedo utilizar otro proveedor en iis7 para conectarme a SQL2000? ya intente con varios de la sig pagina : http://www.connectionstrings.com/
o como le puedo hacer?