Ver Mensaje Individual
  #4 (permalink)  
Antiguo 27/06/2014, 11:22
evoarte
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 21 años, 9 meses
Puntos: 2
Respuesta: ADODB.Recordset error '800a0e78' Operation is not allowed when the object

hecho creando un recordSet el error es el mismo,

ADODB.Recordset error '800a0e78'
Operation is not allowed when the object is closed.
/includes/sqlINPREASI.asp, line 43: if (!rs.EOF)

es la siguiente línea, es imposible que esté cerrado!!

(vaya problema que tengo por que es una web que he tenido que migrar a nuevo servidor)

un saludo,
josé carlos.


Código ASP:
Ver original
  1. <%
  2.     function sqlINPREASI()
  3.     {
  4.         sqlins  = "insert into " + tabla + "(";
  5.    
  6.         for (i=1;i<=Request.Form.Count;i++)
  7.         {
  8.             campo = String(Request.Form.Key(i));
  9.  
  10.             if (campo.search(/^envio$|^atras$|^sia$|^undefined$/)<0)
  11.             {
  12.                 sqlins += campo + ",";
  13.             }
  14.         }
  15.         sqlins += "fecha,activo,codigoa";
  16.         sqlins += ") values (";
  17.  
  18.         for (i=1;i<=Request.Form.Count;i++)
  19.         {
  20.             campo = String(Request.Form.Key(i));
  21.             valor = String(Request.Form.Item(campo));
  22.  
  23.             if (campo.search(/^envio$|^atras$|^sia$|^undefined$/)<0)
  24.             {
  25.                 sqlins += "\'" + valor + "\',";
  26.             }
  27.         }
  28.  
  29.         sqlins += "\'" + fecha + "\',\'" + activo + "\',\'" + codigoa + "\'";
  30.         sqlins += ")";
  31.        
  32.         sqlsel = "select * from " + tabla + " where (" + ncolu + "= SCOPE_IDENTITY())";
  33.  
  34.         sql = sqlins + ";" + sqlsel;
  35.  
  36.         rs = Server.CreateObject("ADODB.RecordSet");
  37.         var adOpenKeySet = 1;
  38.         rs.Open(sql,CONN,adOpenKeySet);
  39.         // rs = CONN.execute(sqlins);
  40.        
  41.     //  Aplicamos el método getRows() a nuestro recordSet para guardarlo en un array.                   //
  42.    
  43.         if (!rs.EOF)
  44.         {
  45.             var consulVB  = (new VBArray(rs.getRows()));
  46.             nufila = consulVB.ubound(2) + 1;
  47.             nucolu = consulVB.ubound(1) + 1;
  48.            
  49.     //  Convertimos el array Visual Basic a javaScript mediante toArray().                              //
  50.            
  51.             consulta = consulVB.toArray();
  52.  
  53.     //  Construimos un array donde el número de filas es el número de registros recuperados de      //
  54.     //  de la consulta, y el número de columnas es el número de campos de la tabla que nos trae     //
  55.     //  la consulta.                                                                                                //
  56.            
  57.             dato = new Array(nufila);
  58.            
  59.             for (i=0;i<nufila;i++)
  60.             {
  61.                 var colu = new Array(nucolu);
  62.                 for (j=0;j<nucolu;j++)
  63.                 {
  64.                     colu[j] = consulta[(i*nucolu)+j];
  65.                 }
  66.                 dato[i] = colu;
  67.             }
  68.         }
  69.         else
  70.         {
  71.             Response.Write("No hemos recuperado el último registro insertado");
  72.         }          
  73.  
  74.     // Cerramos el recorSet y lo vaciamos.                                                                  //
  75.            
  76.         rs.close();
  77.         rs=null;       
  78.     }
  79. %>