Haber muchachos, quien se anima a ayudarme, les planteo el problema y me dicen:
tengo el siguiente store procedure :
Código SQL:
Ver originalALTER 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 originalnString = "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 originalnString = "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 originalstrSQL = "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 originalADODB.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 originalEl 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?