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

problemas con SQLOLEDB.1

Estas en el tema de problemas con SQLOLEDB.1 en el foro de SQL Server en Foros del Web. Haber muchachos, quien se anima a ayudarme, les planteo el problema y me dicen: tengo el siguiente store procedure : @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver ...
  #1 (permalink)  
Antiguo 02/06/2011, 00:15
Avatar de Joch_pa  
Fecha de Ingreso: octubre-2009
Ubicación: Pachuca De Soto, Hidalgo, Mexico, Mexico
Mensajes: 122
Antigüedad: 15 años, 1 mes
Puntos: 7
Pregunta problemas con SQLOLEDB.1

Haber muchachos, quien se anima a ayudarme, les planteo el problema y me dicen:

tengo el siguiente store procedure :
Código SQL:
Ver original
  1. ALTER PROCEDURE dbo.WQ_sp_RangoFechasBateria
  2.     @tipo NUMERIC(9)=0
  3. AS
  4.  
  5.     DECLARE @FechaInicial datetime ,@FechaFinal   datetime,  @dias NUMERIC(9),@FechaFinal2   datetime
  6.  
  7. --obtener el primer dia en que se contesto la bateria
  8.     SET @FechaInicial = (SELECT MIN(dfecha) FROM bateriarespuestasoperacion WHERE nidpregunta IN (SELECT nidpregunta FROM catbateriapreguntas WHERE cestatus='A' AND nidtipobateria=@tipo) )
  9. --obtener el total de preguntas a responder
  10.     SET @dias  = (SELECT COUNT(nidpregunta) FROM catbateriapreguntas WHERE cestatus='A' AND nidtipobateria=@tipo)
  11. --obtener el ultimo dia en que se deben de responder las preguntas
  12.     SET @FechaFinal = dateadd(dd, (@dias/3)+1, @FechaInicial)
  13.  
  14. --obetner el ultimo dia en caso de que sea mayor al estimado
  15.     SET @FechaFinal2 = (SELECT MAX(dfecha) FROM bateriarespuestasoperacion WHERE nidpregunta IN (SELECT nidpregunta FROM catbateriapreguntas WHERE cestatus='A' AND nidtipobateria=@tipo) )
  16.     IF @FechaFinal2>@FechaFinal
  17.     BEGIN
  18.         SET @FechaFinal = @FechaFinal2
  19.     END
  20.    
  21. --borrar informacion anterior
  22.     DELETE FROM dbo.FechasRpt5 WHERE nIdTipoBateria = @tipo
  23. --insertar todas las fechas
  24.     while @FechaInicial < @FechaFinal
  25.     BEGIN
  26.         INSERT INTO dbo.FechasRpt5 VALUES (@FechaInicial,@tipo)
  27.         SET @FechaInicial = dateadd(dd, 1, @FechaInicial)
  28.     END
  29.    
  30.     SELECT CONVERT(CHAR(10),dFecha,103)AS Fecha,@dias AS Total FROM FechasRpt5 WHERE nIdTipoBateria = @tipo ORDER BY dFecha
  31. 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
  1. 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
  1. 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
  1. strSQL = "Exec " & vBD & "WQ_sp_RangoFechasBateria " & cboBateria
  2.             set rsFechas = createobject("adodb.recordset")
  3.             rsFechas.open strSQL, adodbconnection
  4.             if err then MandarError ("Ocurrio un error" & err.description)
  5. if not rsFechas.eof then
  6.                 do while not rsFechas.eof
  7.                     vEncabezadoTabla = vEncabezadoTabla & "<th class=""textovertical""><font size=""1px"" color=blue>"& server.HTMLEncode(replace(rsFechas("Fecha"),"/"," - ")) & "</font></th>"
  8.                     TotalPreguntas = rsFechas("Total")
  9.                     rsFechas.movenext
  10.                     TotalFechas = TotalFechas + 1                  
  11.                     redim preserve TotalC(TotalFechas), TotalI(TotalFechas)
  12.                 loop
  13. 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
  1. ADODB.Recordset
  2.  
  3.  error '800a0e78'
  4.  
  5. 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
  1. 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?

Etiquetas: 2000, sql
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 13:17.