Operation is not allowed when the object is closed

31/08/2004 - 05:34 por leon | Informe spam
saludos listeros.

Estoy obteniendo este error cuando trato de correr el siguiente codigo.
"Operation is not allowed when the object is closed"

Solo les voy a mostrar el pedazo donde me esta sacando el error, lo demas
lo omití porque no es necesario, como cerrar la conexion y los recordset.

las consultas corren y ejecutan bien.
El error ocurre en esta linea:
esta cinco lineas antes del final:

"if rst2.EOF = false then"



dim strMaxInmueble

'se crean dos rs, rst = select a tlbBienes
' strMax = para obtener el maximo Inmueble
set rst = Server.CreateObject("ADODB.Recordset")
set rst2 = Server.CreateObject("ADODB.Recordset")
set rstMax = Server.CreateObject("ADODB.Recordset")


'Se busca el consecutivo para el negocio
strSQL = "SELECT strNumeroInmueble AS Ninmueble" & _
" FROM tblBienes"

rst.Open strSQL, strRutaConexion
if rst.EOF = true then
strNumeroInmueble = mid(Trim(SessionIdRegional),1,2) & "0001"
else
'ahora obtenemos el máximo número del negocio
strSQL = "SELECT
Max(CLng(Mid(strNumeroInmueble,Len([strNumeroInmueble])-3,Len([strNumeroInmu
eble])))) AS Ninmueble" & _
" FROM tblBienes"

rstMax.Open strSQL, strRutaConexion
strMaxInmueble = rstMax.Fields("Ninmueble")
'aumentamos en 1 el negocio
strMaxInmueble = CLng(strMaxInmueble) + 1
'necesitamos concatenar los ceros a la izquierda
if len(strMaxInmueble) = 1 then
strMaxInmueble = "000" & strMaxInmueble
else
if len(strMaxInmueble) = 2 then
strMaxInmueble = "00" & strMaxInmueble
else
if len(strMaxInmueble) = 3 then
strMaxInmueble = "0" & strMaxInmueble
end if
end if
end if
'concatenamos todo para obtener el número negocio final
strNumeroInmueble = mid(Trim(SessionIdRegional),1,2) & strMaxInmueble
end if

strSQL = ""
strSQL = "INSERT INTO tblBienes ( strNumeroInmueble, " & _
" strIdRegional, strNumeroNegocio, strIdTipoInmueble," & _
" bytGrupoInmueble, strEstadoBien, strCuentaConavi," & _
" dblValorConavi, strIdPerito, dblValorAvaluo, dblValorGastos," & _
" strLocalizacion, strUrbanizacion, strMunicipio, strBarrio," & _
" strIdEstrato, lngArea, strMatriculaIn, strIdPiso, " & _
" strIdMuro, strIdTecho, strIdCocina, bytNumeroAlcobas, " & varCampos &
" )" & _
" VALUES (" & strNumeroInmueble & ", " & _
" " & strIdRegional & ", " & strNumeroNegocio & ", '" &
strIdTipoInmueble & "'," & _
" '" & bytGrupoInmueble & "', " & strEstadoBien & ", " &
strCuentaConavi & ", " & _
" " & dblValorConavi & ", '" & strIdPerito & "', " & dblValorAvaluo & ",
" & dblValorGastos & ", " & _
" '" & strLocalizacion & "', '" & strUrbanizacion & "', '" &
strMunicipio & "', '" & strBarrio & "', " & _
" '" & strIdEstrato & "', " & lngArea & ", '" & strMatriculaIn & "', '"
& strIdPiso & "', " & _
" '" & strIdMuro & "', '" & strIdTecho & "', '" & strIdCocina & "', " &
bytNumeroAlcobas & ", " & varValores & ")"

objConx.Execute(strSQL)

'Si el negocio tiene asociado un Bien y una Obligacion, entonces
' se coloca el campo strEstadoNeg de la tabla tblNegocios en 2 Contabilizado
strSQL = "SELECT tblNegocios.strNumeroNegocio, tblNegocios.strEstadoNeg" &
_
"FROM (tblNegocios INNER JOIN tblBienes ON
tblNegocios.strNumeroNegocio" & _
" = tblBienes.strNumeroNegocio) INNER JOIN tblObligaciones ON
tblNegocios.strNumeroNegocio" & _
" = tblObligaciones.strNumeroNegocio" & _
" WHERE tblNegocios.strEstadoNeg = '" & strNumeroNegocio & "'"


objConx.Open strRutaConexion
rst2.Open strSQL, strRutaConexion
if rst2.EOF = false then
strSQL = "UPDATE tblNegocios SET tblNegocios.strEstadoNeg = 2" & _
" WHERE strNumeroNegocio = '" & strNumeroNegocio & "'"
objConx.Execute(strSQL)
end if


De antemano os agradezco

leon

Preguntas similare

Leer las respuestas

#1 Franco Figún
31/08/2004 - 06:31 | Informe spam
Me suena a que alomejor estas tratando de hacer la consultar o insertar
datos, ya habiendo cerrado la conexion, o el recordset...

FF
www.francofigun.com.ar
www.microsofties.com.ar
Yahoo MSN:
ICQ: 314408886

"leon" escribió en el mensaje
news:
saludos listeros.

Estoy obteniendo este error cuando trato de correr el siguiente codigo.
"Operation is not allowed when the object is closed"

Solo les voy a mostrar el pedazo donde me esta sacando el error, lo demas
lo omití porque no es necesario, como cerrar la conexion y los recordset.

las consultas corren y ejecutan bien.
El error ocurre en esta linea:
esta cinco lineas antes del final:

"if rst2.EOF = false then"



dim strMaxInmueble

'se crean dos rs, rst = select a tlbBienes
' strMax = para obtener el maximo Inmueble
set rst = Server.CreateObject("ADODB.Recordset")
set rst2 = Server.CreateObject("ADODB.Recordset")
set rstMax = Server.CreateObject("ADODB.Recordset")


'Se busca el consecutivo para el negocio
strSQL = "SELECT strNumeroInmueble AS Ninmueble" & _
" FROM tblBienes"

rst.Open strSQL, strRutaConexion
if rst.EOF = true then
strNumeroInmueble = mid(Trim(SessionIdRegional),1,2) & "0001"
else
'ahora obtenemos el máximo número del negocio
strSQL = "SELECT



Max(CLng(Mid(strNumeroInmueble,Len([strNumeroInmueble])-3,Len([strNumeroInmu
eble])))) AS Ninmueble" & _
" FROM tblBienes"

rstMax.Open strSQL, strRutaConexion
strMaxInmueble = rstMax.Fields("Ninmueble")
'aumentamos en 1 el negocio
strMaxInmueble = CLng(strMaxInmueble) + 1
'necesitamos concatenar los ceros a la izquierda
if len(strMaxInmueble) = 1 then
strMaxInmueble = "000" & strMaxInmueble
else
if len(strMaxInmueble) = 2 then
strMaxInmueble = "00" & strMaxInmueble
else
if len(strMaxInmueble) = 3 then
strMaxInmueble = "0" & strMaxInmueble
end if
end if
end if
'concatenamos todo para obtener el número negocio final
strNumeroInmueble = mid(Trim(SessionIdRegional),1,2) & strMaxInmueble
end if

strSQL = ""
strSQL = "INSERT INTO tblBienes ( strNumeroInmueble, " & _
" strIdRegional, strNumeroNegocio, strIdTipoInmueble," & _
" bytGrupoInmueble, strEstadoBien, strCuentaConavi," & _
" dblValorConavi, strIdPerito, dblValorAvaluo, dblValorGastos," & _
" strLocalizacion, strUrbanizacion, strMunicipio, strBarrio," & _
" strIdEstrato, lngArea, strMatriculaIn, strIdPiso, " & _
" strIdMuro, strIdTecho, strIdCocina, bytNumeroAlcobas, " & varCampos


&
" )" & _
" VALUES (" & strNumeroInmueble & ", " & _
" " & strIdRegional & ", " & strNumeroNegocio & ", '" &
strIdTipoInmueble & "'," & _
" '" & bytGrupoInmueble & "', " & strEstadoBien & ", " &
strCuentaConavi & ", " & _
" " & dblValorConavi & ", '" & strIdPerito & "', " & dblValorAvaluo &


",
" & dblValorGastos & ", " & _
" '" & strLocalizacion & "', '" & strUrbanizacion & "', '" &
strMunicipio & "', '" & strBarrio & "', " & _
" '" & strIdEstrato & "', " & lngArea & ", '" & strMatriculaIn & "',


'"
& strIdPiso & "', " & _
" '" & strIdMuro & "', '" & strIdTecho & "', '" & strIdCocina & "', "


&
bytNumeroAlcobas & ", " & varValores & ")"

objConx.Execute(strSQL)

'Si el negocio tiene asociado un Bien y una Obligacion, entonces
' se coloca el campo strEstadoNeg de la tabla tblNegocios en 2 > Contabilizado
strSQL = "SELECT tblNegocios.strNumeroNegocio, tblNegocios.strEstadoNeg"


&
_
"FROM (tblNegocios INNER JOIN tblBienes ON
tblNegocios.strNumeroNegocio" & _
" = tblBienes.strNumeroNegocio) INNER JOIN tblObligaciones ON
tblNegocios.strNumeroNegocio" & _
" = tblObligaciones.strNumeroNegocio" & _
" WHERE tblNegocios.strEstadoNeg = '" & strNumeroNegocio & "'"


objConx.Open strRutaConexion
rst2.Open strSQL, strRutaConexion
if rst2.EOF = false then
strSQL = "UPDATE tblNegocios SET tblNegocios.strEstadoNeg = 2" &


_
" WHERE strNumeroNegocio = '" & strNumeroNegocio & "'"
objConx.Execute(strSQL)
end if


De antemano os agradezco

leon


Respuesta Responder a este mensaje
#2 leon
31/08/2004 - 17:17 | Informe spam
Hola Franco, eso es lo que me parece estraño, porque la conexion la cierro a
lo ultimo cuando hace todo, es mas en el codigo ni la puse porque no lo
creí interesante.

Sigo en la busqueda de la solucion.

Saludos.

fausto.


"Franco Figún" wrote in message
news:
Me suena a que alomejor estas tratando de hacer la consultar o insertar
datos, ya habiendo cerrado la conexion, o el recordset...

FF
www.francofigun.com.ar
www.microsofties.com.ar
Yahoo MSN:
ICQ: 314408886

"leon" escribió en el mensaje
news:
> saludos listeros.
>
> Estoy obteniendo este error cuando trato de correr el siguiente codigo.
> "Operation is not allowed when the object is closed"
>
> Solo les voy a mostrar el pedazo donde me esta sacando el error, lo


demas
> lo omití porque no es necesario, como cerrar la conexion y los


recordset.
>
> las consultas corren y ejecutan bien.
> El error ocurre en esta linea:
> esta cinco lineas antes del final:
>
> "if rst2.EOF = false then"
>
>
>
> dim strMaxInmueble
>
> 'se crean dos rs, rst = select a tlbBienes
> ' strMax = para obtener el maximo Inmueble
> set rst = Server.CreateObject("ADODB.Recordset")
> set rst2 = Server.CreateObject("ADODB.Recordset")
> set rstMax = Server.CreateObject("ADODB.Recordset")
>
>
> 'Se busca el consecutivo para el negocio
> strSQL = "SELECT strNumeroInmueble AS Ninmueble" & _
> " FROM tblBienes"
>
> rst.Open strSQL, strRutaConexion
> if rst.EOF = true then
> strNumeroInmueble = mid(Trim(SessionIdRegional),1,2) & "0001"
> else
> 'ahora obtenemos el máximo número del negocio
> strSQL = "SELECT
>



Max(CLng(Mid(strNumeroInmueble,Len([strNumeroInmueble])-3,Len([strNumeroInmu
> eble])))) AS Ninmueble" & _
> " FROM tblBienes"
>
> rstMax.Open strSQL, strRutaConexion
> strMaxInmueble = rstMax.Fields("Ninmueble")
> 'aumentamos en 1 el negocio
> strMaxInmueble = CLng(strMaxInmueble) + 1
> 'necesitamos concatenar los ceros a la izquierda
> if len(strMaxInmueble) = 1 then
> strMaxInmueble = "000" & strMaxInmueble
> else
> if len(strMaxInmueble) = 2 then
> strMaxInmueble = "00" & strMaxInmueble
> else
> if len(strMaxInmueble) = 3 then
> strMaxInmueble = "0" & strMaxInmueble
> end if
> end if
> end if
> 'concatenamos todo para obtener el número negocio final
> strNumeroInmueble = mid(Trim(SessionIdRegional),1,2) &


strMaxInmueble
> end if
>
> strSQL = ""
> strSQL = "INSERT INTO tblBienes ( strNumeroInmueble, " & _
> " strIdRegional, strNumeroNegocio, strIdTipoInmueble," & _
> " bytGrupoInmueble, strEstadoBien, strCuentaConavi," & _
> " dblValorConavi, strIdPerito, dblValorAvaluo, dblValorGastos," & _
> " strLocalizacion, strUrbanizacion, strMunicipio, strBarrio," & _
> " strIdEstrato, lngArea, strMatriculaIn, strIdPiso, " & _
> " strIdMuro, strIdTecho, strIdCocina, bytNumeroAlcobas, " &


varCampos
&
> " )" & _
> " VALUES (" & strNumeroInmueble & ", " & _
> " " & strIdRegional & ", " & strNumeroNegocio & ", '" &
> strIdTipoInmueble & "'," & _
> " '" & bytGrupoInmueble & "', " & strEstadoBien & ", " &
> strCuentaConavi & ", " & _
> " " & dblValorConavi & ", '" & strIdPerito & "', " & dblValorAvaluo


&
",
> " & dblValorGastos & ", " & _
> " '" & strLocalizacion & "', '" & strUrbanizacion & "', '" &
> strMunicipio & "', '" & strBarrio & "', " & _
> " '" & strIdEstrato & "', " & lngArea & ", '" & strMatriculaIn &


"',
'"
> & strIdPiso & "', " & _
> " '" & strIdMuro & "', '" & strIdTecho & "', '" & strIdCocina & "',


"
&
> bytNumeroAlcobas & ", " & varValores & ")"
>
> objConx.Execute(strSQL)
>
> 'Si el negocio tiene asociado un Bien y una Obligacion, entonces
> ' se coloca el campo strEstadoNeg de la tabla tblNegocios en 2 > > Contabilizado
> strSQL = "SELECT tblNegocios.strNumeroNegocio,


tblNegocios.strEstadoNeg"
&
> _
> "FROM (tblNegocios INNER JOIN tblBienes ON
> tblNegocios.strNumeroNegocio" & _
> " = tblBienes.strNumeroNegocio) INNER JOIN tblObligaciones ON
> tblNegocios.strNumeroNegocio" & _
> " = tblObligaciones.strNumeroNegocio" & _
> " WHERE tblNegocios.strEstadoNeg = '" & strNumeroNegocio & "'"
>
>
> objConx.Open strRutaConexion
> rst2.Open strSQL, strRutaConexion
> if rst2.EOF = false then
> strSQL = "UPDATE tblNegocios SET tblNegocios.strEstadoNeg = 2"


&
_
> " WHERE strNumeroNegocio = '" & strNumeroNegocio & "'"
> objConx.Execute(strSQL)
> end if
>
>
> De antemano os agradezco
>
> leon
>
>


Respuesta Responder a este mensaje
#3 Omar Valdovino
31/08/2004 - 17:52 | Informe spam
if rst2.EOF = false then 'Aqui preguntas si el rst2 no es fin de archivo.
¿Estas seguro de que rst2 esta creado?

dim strMaxInmueble

'se crean dos rs, rst = select a tlbBienes
'strMax = para obtener el maximo Inmueble
set rst = Server.CreateObject("ADODB.Recordset")

'Aqui Creas rst2 si no hay una linea identica a esta antes de comparar si es
fin de archivo entonces ese es el error.
Como el error lo dice: "la operacion no esta permitida cuando el objeto esta
cerrado"
set rst2 = Server.CreateObject("ADODB.Recordset")


set rstMax = Server.CreateObject("ADODB.Recordset")

el error debe darte la linea exacta donde sucede, puedes verificar que linea
es. Para mi no es que la conexion este cerrada, sino que el recordset no
esta creado. Por eso debe de fallar al momento de comparar si es fin de
archivo

"leon" escribió en el mensaje
news:
Hola Franco, eso es lo que me parece estraño, porque la conexion la cierro


a
lo ultimo cuando hace todo, es mas en el codigo ni la puse porque no lo
creí interesante.

Sigo en la busqueda de la solucion.

Saludos.

fausto.


"Franco Figún" wrote in message
news:
> Me suena a que alomejor estas tratando de hacer la consultar o insertar
> datos, ya habiendo cerrado la conexion, o el recordset...
>
> FF
> www.francofigun.com.ar
> www.microsofties.com.ar
> Yahoo MSN:
> ICQ: 314408886
>
> "leon" escribió en el mensaje
> news:
> > saludos listeros.
> >
> > Estoy obteniendo este error cuando trato de correr el siguiente


codigo.
> > "Operation is not allowed when the object is closed"
> >
> > Solo les voy a mostrar el pedazo donde me esta sacando el error, lo
demas
> > lo omití porque no es necesario, como cerrar la conexion y los
recordset.
> >
> > las consultas corren y ejecutan bien.
> > El error ocurre en esta linea:
> > esta cinco lineas antes del final:
> >
> > "if rst2.EOF = false then"
> >
> >
> >
> > dim strMaxInmueble
> >
> > 'se crean dos rs, rst = select a tlbBienes
> > ' strMax = para obtener el maximo Inmueble
> > set rst = Server.CreateObject("ADODB.Recordset")
> > set rst2 = Server.CreateObject("ADODB.Recordset")
> > set rstMax = Server.CreateObject("ADODB.Recordset")
> >
> >
> > 'Se busca el consecutivo para el negocio
> > strSQL = "SELECT strNumeroInmueble AS Ninmueble" & _
> > " FROM tblBienes"
> >
> > rst.Open strSQL, strRutaConexion
> > if rst.EOF = true then
> > strNumeroInmueble = mid(Trim(SessionIdRegional),1,2) &


"0001"
> > else
> > 'ahora obtenemos el máximo número del negocio
> > strSQL = "SELECT
> >
>



Max(CLng(Mid(strNumeroInmueble,Len([strNumeroInmueble])-3,Len([strNumeroInmu
> > eble])))) AS Ninmueble" & _
> > " FROM tblBienes"
> >
> > rstMax.Open strSQL, strRutaConexion
> > strMaxInmueble = rstMax.Fields("Ninmueble")
> > 'aumentamos en 1 el negocio
> > strMaxInmueble = CLng(strMaxInmueble) + 1
> > 'necesitamos concatenar los ceros a la izquierda
> > if len(strMaxInmueble) = 1 then
> > strMaxInmueble = "000" & strMaxInmueble
> > else
> > if len(strMaxInmueble) = 2 then
> > strMaxInmueble = "00" & strMaxInmueble
> > else
> > if len(strMaxInmueble) = 3 then
> > strMaxInmueble = "0" & strMaxInmueble
> > end if
> > end if
> > end if
> > 'concatenamos todo para obtener el número negocio final
> > strNumeroInmueble = mid(Trim(SessionIdRegional),1,2) &
strMaxInmueble
> > end if
> >
> > strSQL = ""
> > strSQL = "INSERT INTO tblBienes ( strNumeroInmueble, " & _
> > " strIdRegional, strNumeroNegocio, strIdTipoInmueble," & _
> > " bytGrupoInmueble, strEstadoBien, strCuentaConavi," & _
> > " dblValorConavi, strIdPerito, dblValorAvaluo, dblValorGastos," &


_
> > " strLocalizacion, strUrbanizacion, strMunicipio, strBarrio," & _
> > " strIdEstrato, lngArea, strMatriculaIn, strIdPiso, " & _
> > " strIdMuro, strIdTecho, strIdCocina, bytNumeroAlcobas, " &
varCampos
> &
> > " )" & _
> > " VALUES (" & strNumeroInmueble & ", " & _
> > " " & strIdRegional & ", " & strNumeroNegocio & ", '" &
> > strIdTipoInmueble & "'," & _
> > " '" & bytGrupoInmueble & "', " & strEstadoBien & ", " &
> > strCuentaConavi & ", " & _
> > " " & dblValorConavi & ", '" & strIdPerito & "', " &


dblValorAvaluo
&
> ",
> > " & dblValorGastos & ", " & _
> > " '" & strLocalizacion & "', '" & strUrbanizacion & "', '" &
> > strMunicipio & "', '" & strBarrio & "', " & _
> > " '" & strIdEstrato & "', " & lngArea & ", '" & strMatriculaIn &
"',
> '"
> > & strIdPiso & "', " & _
> > " '" & strIdMuro & "', '" & strIdTecho & "', '" & strIdCocina &


"',
"
> &
> > bytNumeroAlcobas & ", " & varValores & ")"
> >
> > objConx.Execute(strSQL)
> >
> > 'Si el negocio tiene asociado un Bien y una Obligacion, entonces
> > ' se coloca el campo strEstadoNeg de la tabla tblNegocios en 2 > > > Contabilizado
> > strSQL = "SELECT tblNegocios.strNumeroNegocio,
tblNegocios.strEstadoNeg"
> &
> > _
> > "FROM (tblNegocios INNER JOIN tblBienes ON
> > tblNegocios.strNumeroNegocio" & _
> > " = tblBienes.strNumeroNegocio) INNER JOIN tblObligaciones ON
> > tblNegocios.strNumeroNegocio" & _
> > " = tblObligaciones.strNumeroNegocio" & _
> > " WHERE tblNegocios.strEstadoNeg = '" & strNumeroNegocio & "'"
> >
> >
> > objConx.Open strRutaConexion
> > rst2.Open strSQL, strRutaConexion
> > if rst2.EOF = false then
> > strSQL = "UPDATE tblNegocios SET tblNegocios.strEstadoNeg 2"
&
> _
> > " WHERE strNumeroNegocio = '" & strNumeroNegocio & "'"
> > objConx.Execute(strSQL)
> > end if
> >
> >
> > De antemano os agradezco
> >
> > leon
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Sashka
31/08/2004 - 22:11 | Informe spam
Yo no tengo claro como estás manejando el tema de la conexión...
Veo en el código esto:

objConx.Execute(strSQL) ' la conexión está abierta si puedes hacer ésto


objConx.Open strRutaConexion ' estas abriendo una conexión abierta .
rst2.Open strSQL, strRutaConexion

Por otro lado tu abres una conexión para ejecutar comandos implícitos
con ella (es lo que hace el execute con una conexión) pero abres los
recordsets con conexiones implícitas (practica nada buena)... es decir
cuando tu pasas la cadena de conexión al open de un recordset, en lugar de
pasarle la conexión... lo que haces es abrir una conexión implícita que no
se cierra hasta que cierras el recordset y lo seteas a nothing
Cómo no pones todo el código... puedo suponer que eso lo haces otras veces
más... así que lo que puede estar pasando es que no se abre el recordset
(rst2) debido a que no tienes más conexiones disponibles en el pool

http://support.microsoft.com/defaul...?scid=http://support.microsoft.com:80/support/kb/articles/Q191/5/72.ASP&NoWebContent=1

En todo caso ... ponle un on error resume next y verifica cual es el
error...

objConx.Open strRutaConexion ' estas abriendo una conexión abierta .
rst2.Open strSQL, strRutaConexion
if rst2.EOF = false then
if err = 0 then
strSQL = "UPDATE tblNegocios SET tblNegocios.strEstadoNeg 2" & _
" WHERE strNumeroNegocio = '" & strNumeroNegocio & "'"
objConx.Execute(strSQL)
ELSE
Response.write err.description
End If
end if
On error goto 0

Sashka
MS MVP Access



"leon" escribió en el mensaje
news:
Hola Franco, eso es lo que me parece estraño, porque la conexion la cierro


a
lo ultimo cuando hace todo, es mas en el codigo ni la puse porque no lo
creí interesante.

Sigo en la busqueda de la solucion.

Saludos.

fausto.


"Franco Figún" wrote in message
news:
> Me suena a que alomejor estas tratando de hacer la consultar o insertar
> datos, ya habiendo cerrado la conexion, o el recordset...
>
> FF
> www.francofigun.com.ar
> www.microsofties.com.ar
> Yahoo MSN:
> ICQ: 314408886
>
> "leon" escribió en el mensaje
> news:
> > saludos listeros.
> >
> > Estoy obteniendo este error cuando trato de correr el siguiente


codigo.
> > "Operation is not allowed when the object is closed"
> >
> > Solo les voy a mostrar el pedazo donde me esta sacando el error, lo
demas
> > lo omití porque no es necesario, como cerrar la conexion y los
recordset.
> >
> > las consultas corren y ejecutan bien.
> > El error ocurre en esta linea:
> > esta cinco lineas antes del final:
> >
> > "if rst2.EOF = false then"
> >
> >
> >
> > dim strMaxInmueble
> >
> > 'se crean dos rs, rst = select a tlbBienes
> > ' strMax = para obtener el maximo Inmueble
> > set rst = Server.CreateObject("ADODB.Recordset")
> > set rst2 = Server.CreateObject("ADODB.Recordset")
> > set rstMax = Server.CreateObject("ADODB.Recordset")
> >
> >
> > 'Se busca el consecutivo para el negocio
> > strSQL = "SELECT strNumeroInmueble AS Ninmueble" & _
> > " FROM tblBienes"
> >
> > rst.Open strSQL, strRutaConexion
> > if rst.EOF = true then
> > strNumeroInmueble = mid(Trim(SessionIdRegional),1,2) &


"0001"
> > else
> > 'ahora obtenemos el máximo número del negocio
> > strSQL = "SELECT
> >
>



Max(CLng(Mid(strNumeroInmueble,Len([strNumeroInmueble])-3,Len([strNumeroInmu
> > eble])))) AS Ninmueble" & _
> > " FROM tblBienes"
> >
> > rstMax.Open strSQL, strRutaConexion
> > strMaxInmueble = rstMax.Fields("Ninmueble")
> > 'aumentamos en 1 el negocio
> > strMaxInmueble = CLng(strMaxInmueble) + 1
> > 'necesitamos concatenar los ceros a la izquierda
> > if len(strMaxInmueble) = 1 then
> > strMaxInmueble = "000" & strMaxInmueble
> > else
> > if len(strMaxInmueble) = 2 then
> > strMaxInmueble = "00" & strMaxInmueble
> > else
> > if len(strMaxInmueble) = 3 then
> > strMaxInmueble = "0" & strMaxInmueble
> > end if
> > end if
> > end if
> > 'concatenamos todo para obtener el número negocio final
> > strNumeroInmueble = mid(Trim(SessionIdRegional),1,2) &
strMaxInmueble
> > end if
> >
> > strSQL = ""
> > strSQL = "INSERT INTO tblBienes ( strNumeroInmueble, " & _
> > " strIdRegional, strNumeroNegocio, strIdTipoInmueble," & _
> > " bytGrupoInmueble, strEstadoBien, strCuentaConavi," & _
> > " dblValorConavi, strIdPerito, dblValorAvaluo, dblValorGastos," &


_
> > " strLocalizacion, strUrbanizacion, strMunicipio, strBarrio," & _
> > " strIdEstrato, lngArea, strMatriculaIn, strIdPiso, " & _
> > " strIdMuro, strIdTecho, strIdCocina, bytNumeroAlcobas, " &
varCampos
> &
> > " )" & _
> > " VALUES (" & strNumeroInmueble & ", " & _
> > " " & strIdRegional & ", " & strNumeroNegocio & ", '" &
> > strIdTipoInmueble & "'," & _
> > " '" & bytGrupoInmueble & "', " & strEstadoBien & ", " &
> > strCuentaConavi & ", " & _
> > " " & dblValorConavi & ", '" & strIdPerito & "', " &


dblValorAvaluo
&
> ",
> > " & dblValorGastos & ", " & _
> > " '" & strLocalizacion & "', '" & strUrbanizacion & "', '" &
> > strMunicipio & "', '" & strBarrio & "', " & _
> > " '" & strIdEstrato & "', " & lngArea & ", '" & strMatriculaIn &
"',
> '"
> > & strIdPiso & "', " & _
> > " '" & strIdMuro & "', '" & strIdTecho & "', '" & strIdCocina &


"',
"
> &
> > bytNumeroAlcobas & ", " & varValores & ")"
> >
> > objConx.Execute(strSQL)
> >
> > 'Si el negocio tiene asociado un Bien y una Obligacion, entonces
> > ' se coloca el campo strEstadoNeg de la tabla tblNegocios en 2 > > > Contabilizado
> > strSQL = "SELECT tblNegocios.strNumeroNegocio,
tblNegocios.strEstadoNeg"
> &
> > _
> > "FROM (tblNegocios INNER JOIN tblBienes ON
> > tblNegocios.strNumeroNegocio" & _
> > " = tblBienes.strNumeroNegocio) INNER JOIN tblObligaciones ON
> > tblNegocios.strNumeroNegocio" & _
> > " = tblObligaciones.strNumeroNegocio" & _
> > " WHERE tblNegocios.strEstadoNeg = '" & strNumeroNegocio & "'"
> >
> >
> > objConx.Open strRutaConexion
> > rst2.Open strSQL, strRutaConexion
> > if rst2.EOF = false then
> > strSQL = "UPDATE tblNegocios SET tblNegocios.strEstadoNeg 2"
&
> _
> > " WHERE strNumeroNegocio = '" & strNumeroNegocio & "'"
> > objConx.Execute(strSQL)
> > end if
> >
> >
> > De antemano os agradezco
> >
> > leon
> >
> >
>
>


Respuesta Responder a este mensaje
#5 leon
31/08/2004 - 22:19 | Informe spam
Hola Omar, como ves en estas lineas si estoy creando el recordset, el error
es mas
no por la conexion, sino cuando lo voy a abrir.

'se crean dos rs, rst = select a tlbBienes
' strMax = para obtener el maximo Inmueble
set rst = Server.CreateObject("ADODB.Recordset")
set rst2 = Server.CreateObject("ADODB.Recordset")
set rstMax = Server.CreateObject("ADODB.Recordset")


saludos...

leon


"Omar Valdovino" wrote in message
news:%23Npy$
if rst2.EOF = false then 'Aqui preguntas si el rst2 no es fin de archivo.
¿Estas seguro de que rst2 esta creado?

dim strMaxInmueble

'se crean dos rs, rst = select a tlbBienes
'strMax = para obtener el maximo Inmueble
set rst = Server.CreateObject("ADODB.Recordset")

'Aqui Creas rst2 si no hay una linea identica a esta antes de comparar si


es
fin de archivo entonces ese es el error.
Como el error lo dice: "la operacion no esta permitida cuando el objeto


esta
cerrado"
set rst2 = Server.CreateObject("ADODB.Recordset")


set rstMax = Server.CreateObject("ADODB.Recordset")

el error debe darte la linea exacta donde sucede, puedes verificar que


linea
es. Para mi no es que la conexion este cerrada, sino que el recordset no
esta creado. Por eso debe de fallar al momento de comparar si es fin de
archivo

"leon" escribió en el mensaje
news:
> Hola Franco, eso es lo que me parece estraño, porque la conexion la


cierro
a
> lo ultimo cuando hace todo, es mas en el codigo ni la puse porque no lo
> creí interesante.
>
> Sigo en la busqueda de la solucion.
>
> Saludos.
>
> fausto.
>
>
> "Franco Figún" wrote in message
> news:
> > Me suena a que alomejor estas tratando de hacer la consultar o


insertar
> > datos, ya habiendo cerrado la conexion, o el recordset...
> >
> > FF
> > www.francofigun.com.ar
> > www.microsofties.com.ar
> > Yahoo MSN:
> > ICQ: 314408886
> >
> > "leon" escribió en el mensaje
> > news:
> > > saludos listeros.
> > >
> > > Estoy obteniendo este error cuando trato de correr el siguiente
codigo.
> > > "Operation is not allowed when the object is closed"
> > >
> > > Solo les voy a mostrar el pedazo donde me esta sacando el error, lo
> demas
> > > lo omití porque no es necesario, como cerrar la conexion y los
> recordset.
> > >
> > > las consultas corren y ejecutan bien.
> > > El error ocurre en esta linea:
> > > esta cinco lineas antes del final:
> > >
> > > "if rst2.EOF = false then"
> > >
> > >
> > >
> > > dim strMaxInmueble
> > >
> > > 'se crean dos rs, rst = select a tlbBienes
> > > ' strMax = para obtener el maximo Inmueble
> > > set rst = Server.CreateObject("ADODB.Recordset")
> > > set rst2 = Server.CreateObject("ADODB.Recordset")
> > > set rstMax = Server.CreateObject("ADODB.Recordset")
> > >
> > >
> > > 'Se busca el consecutivo para el negocio
> > > strSQL = "SELECT strNumeroInmueble AS Ninmueble" & _
> > > " FROM tblBienes"
> > >
> > > rst.Open strSQL, strRutaConexion
> > > if rst.EOF = true then
> > > strNumeroInmueble = mid(Trim(SessionIdRegional),1,2) &
"0001"
> > > else
> > > 'ahora obtenemos el máximo número del negocio
> > > strSQL = "SELECT
> > >
> >
>



Max(CLng(Mid(strNumeroInmueble,Len([strNumeroInmueble])-3,Len([strNumeroInmu
> > > eble])))) AS Ninmueble" & _
> > > " FROM tblBienes"
> > >
> > > rstMax.Open strSQL, strRutaConexion
> > > strMaxInmueble = rstMax.Fields("Ninmueble")
> > > 'aumentamos en 1 el negocio
> > > strMaxInmueble = CLng(strMaxInmueble) + 1
> > > 'necesitamos concatenar los ceros a la izquierda
> > > if len(strMaxInmueble) = 1 then
> > > strMaxInmueble = "000" & strMaxInmueble
> > > else
> > > if len(strMaxInmueble) = 2 then
> > > strMaxInmueble = "00" & strMaxInmueble
> > > else
> > > if len(strMaxInmueble) = 3 then
> > > strMaxInmueble = "0" & strMaxInmueble
> > > end if
> > > end if
> > > end if
> > > 'concatenamos todo para obtener el número negocio final
> > > strNumeroInmueble = mid(Trim(SessionIdRegional),1,2) &
> strMaxInmueble
> > > end if
> > >
> > > strSQL = ""
> > > strSQL = "INSERT INTO tblBienes ( strNumeroInmueble, " & _
> > > " strIdRegional, strNumeroNegocio, strIdTipoInmueble," & _
> > > " bytGrupoInmueble, strEstadoBien, strCuentaConavi," & _
> > > " dblValorConavi, strIdPerito, dblValorAvaluo, dblValorGastos,"


&
_
> > > " strLocalizacion, strUrbanizacion, strMunicipio, strBarrio," &


_
> > > " strIdEstrato, lngArea, strMatriculaIn, strIdPiso, " & _
> > > " strIdMuro, strIdTecho, strIdCocina, bytNumeroAlcobas, " &
> varCampos
> > &
> > > " )" & _
> > > " VALUES (" & strNumeroInmueble & ", " & _
> > > " " & strIdRegional & ", " & strNumeroNegocio & ", '" &
> > > strIdTipoInmueble & "'," & _
> > > " '" & bytGrupoInmueble & "', " & strEstadoBien & ", " &
> > > strCuentaConavi & ", " & _
> > > " " & dblValorConavi & ", '" & strIdPerito & "', " &
dblValorAvaluo
> &
> > ",
> > > " & dblValorGastos & ", " & _
> > > " '" & strLocalizacion & "', '" & strUrbanizacion & "', '" &
> > > strMunicipio & "', '" & strBarrio & "', " & _
> > > " '" & strIdEstrato & "', " & lngArea & ", '" & strMatriculaIn


&
> "',
> > '"
> > > & strIdPiso & "', " & _
> > > " '" & strIdMuro & "', '" & strIdTecho & "', '" & strIdCocina &
"',
> "
> > &
> > > bytNumeroAlcobas & ", " & varValores & ")"
> > >
> > > objConx.Execute(strSQL)
> > >
> > > 'Si el negocio tiene asociado un Bien y una Obligacion, entonces
> > > ' se coloca el campo strEstadoNeg de la tabla tblNegocios en 2 > > > > Contabilizado
> > > strSQL = "SELECT tblNegocios.strNumeroNegocio,
> tblNegocios.strEstadoNeg"
> > &
> > > _
> > > "FROM (tblNegocios INNER JOIN tblBienes ON
> > > tblNegocios.strNumeroNegocio" & _
> > > " = tblBienes.strNumeroNegocio) INNER JOIN tblObligaciones ON
> > > tblNegocios.strNumeroNegocio" & _
> > > " = tblObligaciones.strNumeroNegocio" & _
> > > " WHERE tblNegocios.strEstadoNeg = '" & strNumeroNegocio & "'"
> > >
> > >
> > > objConx.Open strRutaConexion
> > > rst2.Open strSQL, strRutaConexion
> > > if rst2.EOF = false then
> > > strSQL = "UPDATE tblNegocios SET tblNegocios.strEstadoNeg
2"
> &
> > _
> > > " WHERE strNumeroNegocio = '" & strNumeroNegocio & "'"
> > > objConx.Execute(strSQL)
> > > end if
> > >
> > >
> > > De antemano os agradezco
> > >
> > > leon
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida