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<%
function sqlINPREASI()
{
sqlins = "insert into " + tabla + "(";
for (i=1;i<=Request.Form.Count;i++)
{
campo = String(Request.Form.Key(i));
if (campo.search(/^envio$|^atras$|^sia$|^undefined$/)<0)
{
sqlins += campo + ",";
}
}
sqlins += "fecha,activo,codigoa";
sqlins += ") values (";
for (i=1;i<=Request.Form.Count;i++)
{
campo = String(Request.Form.Key(i));
valor = String(Request.Form.Item(campo));
if (campo.search(/^envio$|^atras$|^sia$|^undefined$/)<0)
{
sqlins += "\'" + valor + "\',";
}
}
sqlins += "\'" + fecha + "\',\'" + activo + "\',\'" + codigoa + "\'";
sqlins += ")";
sqlsel = "select * from " + tabla + " where (" + ncolu + "= SCOPE_IDENTITY())";
sql = sqlins + ";" + sqlsel;
rs = Server.CreateObject("ADODB.RecordSet");
var adOpenKeySet = 1;
rs.Open(sql,CONN,adOpenKeySet);
// rs = CONN.execute(sqlins);
// Aplicamos el método getRows() a nuestro recordSet para guardarlo en un array. //
if (!rs.EOF)
{
var consulVB = (new VBArray(rs.getRows()));
nufila = consulVB.ubound(2) + 1;
nucolu = consulVB.ubound(1) + 1;
// Convertimos el array Visual Basic a javaScript mediante toArray(). //
consulta = consulVB.toArray();
// Construimos un array donde el número de filas es el número de registros recuperados de //
// de la consulta, y el número de columnas es el número de campos de la tabla que nos trae //
// la consulta. //
dato = new Array(nufila);
for (i=0;i<nufila;i++)
{
var colu = new Array(nucolu);
for (j=0;j<nucolu;j++)
{
colu[j] = consulta[(i*nucolu)+j];
}
dato[i] = colu;
}
}
else
{
Response.Write("No hemos recuperado el último registro insertado");
}
// Cerramos el recorSet y lo vaciamos. //
rs.close();
rs=null;
}
%>