Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/02/2008, 16:31
Avatar de tunait
tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 8 meses
Puntos: 381
La operación no está permitida

Vale, ya he buscado y no he encontrado el qué, así que pregunto porque llevo toda la tarde ensuciando código sin lograr nada. Si alguien me puede iluminar al respecto le estaré eternamente agradecida y si no eternamente, pues un tiempo largo.

Mensaje de error: La operación no está permitida si el objeto está cerrado.

Ya sé que es un clásico pero ninguno de los trucos que haya usado anteriormente ha servido esta vez.

Tengo estas funciones de para acceso a bd access

Código PHP:
Sub AbrirBd()
        
Set DB1server.createObject("ADODB.Connection")
        
DB1.Provider "Microsoft.Jet.OLEDB.4.0;"
        
DB1.Properties("Jet OLEDB:Database password") = bdPwd
        DB1
.Open "Data source=" bdDatos
        DB1
.Properties("Jet OLEDB:Transaction Commit Mode") = 1
        DB1
.Properties("Jet OLEDB:Implicit Commit Sync") = True
       
        Set DB2
server.createObject("ADODB.Connection")
        
DB2.Provider "Microsoft.Jet.OLEDB.4.0;"
        
DB2.Properties("Jet OLEDB:Database password") = bdPwd
        DB2
.Open "Data source=" bdComun
        DB2
.Properties("Jet OLEDB:Transaction Commit Mode") = 1
        DB2
.Properties("Jet OLEDB:Implicit Commit Sync") = True
End Sub 
Esto lleva funcionando hace años perfectamente.

Luego hay otra función para crear un recordset que también funciona perfectamente desde hace el mismo tiempo

Código PHP:
Function CreaRecordSet(consultaBase)
    
On  Error Resume Next
    Err 
0
    Set rc 
server.createObject("ADODB.Recordset")
    
Set rc.ActiveConnection Base
    rc
.CursorLocation 3
    rc
.Open consulta, , 31
    Set CreaRecordSet 
rc
End 
Function 
Bien. En cada documento en el que se abren las bases de datos y se crean tantos RC como sean necesarios funciona de coña.

Si embargo lo mismo, en un documento nuevo que he creado me revienta en el momento de intentar pedir el valor de un campo obtenido a partir de el segundo recordset que se pida.

ejemplo:
Código PHP:
AbrirBd
Set rc 
CreaRecordSet("SELECT pepe from tabla1 Where Tipo='6' and otro='3'"DB2)
Clase rc("pepe"
Hasta ahí como siempre

pero si repito con otra consulta ....
Código PHP:
Set rc CreaRecordSet("SELECT pepino from tabla2 where Asunto = '23r"DB2)
otraClase rs("pepino"
me sale con el mensaje de que La operación no está permitida si el objeto está cerrado.

Si lo hago a la inversa pasa lo mismo. La primera consulta siempre me la devuelve bien y en la segunda, sea cual sea, me da el error.

Si le quito el otraClase = rs("pepino") pero ejecuto la función CreaRecordSet no da error. Sólo me da el error cuando trato de sacar el campo que he pedido.

Las mismas funciones trabajan en otros documentos sin problema.

¿Alguna idea de qué pasa?


Muchas gracias