Foros del Web » Programando para Internet » ASP Clásico »

Insertar Datos En Una Base De Datos

Estas en el tema de Insertar Datos En Una Base De Datos en el foro de ASP Clásico en Foros del Web. Muy buenas Estoy intentando editar un sitio. Este sitio tiene 3 paginas. En la primera (index.asp) se selecciona de un menu un mes y un ...
  #1 (permalink)  
Antiguo 03/11/2005, 05:39
 
Fecha de Ingreso: noviembre-2004
Mensajes: 68
Antigüedad: 19 años, 5 meses
Puntos: 0
Insertar Datos En Una Base De Datos

Muy buenas

Estoy intentando editar un sitio. Este sitio tiene 3 paginas. En la primera (index.asp) se selecciona de un menu un mes y un año y se pasa estos datos a una segunda pagina. El codigo de la primera es:

Código:
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/ConFechas.asp" -->
<%
var ConMeses = Server.CreateObject("ADODB.Recordset");
ConMeses.ActiveConnection = MM_ConFechas_STRING;
ConMeses.Source = "SELECT * FROM MESES";
ConMeses.CursorType = 0;
ConMeses.CursorLocation = 2;
ConMeses.LockType = 1;
ConMeses.Open();
var ConMeses_numRows = 0;
%>
<%
var ConAno = Server.CreateObject("ADODB.Recordset");
ConAno.ActiveConnection = MM_ConFechas_STRING;
ConAno.Source = "SELECT * FROM ANO";
ConAno.CursorType = 0;
ConAno.CursorLocation = 2;
ConAno.LockType = 1;
ConAno.Open();
var ConAno_numRows = 0;
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
<style type="text/css">
<!--
.Estilo2 {
	font-family: Arial, Helvetica, sans-serif;
	font-weight: bold;
}
.Estilo6 {font-family: Arial, Helvetica, sans-serif; font-weight: bold; font-size: 12pt;}
.Estilo7 {
	font-size: 12px;
	font-family: Arial, Helvetica, sans-serif;
	font-weight: bold;
}
-->
</style>
</head>

<body>
<table width="700" border="1" align="center">
  <tr>
    <td width="255"><A href="http://www.queralto.com/"></A></td>
    <td align="right" valign="bottom"><div align="right" class="Estilo2"></div></td>
  </tr>
</table>
<table width="700" border="1" align="center">
  <tr>
    <td bgcolor="#FFFFCC"><div align="center" class="Estilo6">PROGRAMACIONES DE ENTREGAS </div></td>
  </tr>
</table>
<p>&nbsp;</p>
<table width="100%" border="0">
  <tr>
    <td><div align="center">
      <form action="RESULTADO_MES.asp" method="get" name="form_meses" id="form_meses">
          <span class="Estilo7">Selecciona a&ntilde;o y mes a consultar</span> 
          <select name="anuario" id="anuario">
            <% 
while (!ConAno.EOF) {
%>
            <option value="<%=(ConAno.Fields.Item("ANO").Value)%>"><%=(ConAno.Fields.Item("ANO").Value)%></option>
            <%
  ConAno.MoveNext();
}
if (ConAno.CursorType > 0) {
  if (!ConAno.BOF) ConAno.MoveFirst();
} else {
  ConAno.Requery();
}
%>
          </select>
          <select name="meses" id="meses">
            <% 
while (!ConMeses.EOF) {
%>
            <option value="<%=(ConMeses.Fields.Item("MESES").Value)%>"><%=(ConMeses.Fields.Item("MESES").Value)%></option>
            <%
  ConMeses.MoveNext();
}
if (ConMeses.CursorType > 0) {
  if (!ConMeses.BOF) ConMeses.MoveFirst();
} else {
  ConMeses.Requery();
}
%>
          </select>         
          <input type="submit" name="Submit" value="Ejecutar">
      </form>
    </div></td>
  </tr>
</table>
<p align="center">&nbsp;</p>
<p>&nbsp;</p>
</body>
</html>
<%
ConMeses.Close();
%>
<%
ConAno.Close();
%>
continua.........
  #2 (permalink)  
Antiguo 03/11/2005, 05:46
 
Fecha de Ingreso: noviembre-2004
Mensajes: 68
Antigüedad: 19 años, 5 meses
Puntos: 0
continua........

Una vez en la segunda pagina, que consta de una tabla donde aparecen todos los dias del mes seleccionado, hago click en uno de estos dias y me envia a la tercera que es donde se completa el formulario correspondiente a ese dia. El codigo de la segunada página es el siguiente:

Código:
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/ConnMeses.asp" -->
<% var rsProgramacion__ID = "" %>
<%
var rsProgramacion__MMColParam = "1";
if (String(Request.QueryString("meses")) != "undefined" && 
    String(Request.QueryString("meses")) != "") { 
  rsProgramacion__MMColParam = String(Request.QueryString("meses"));
}
%>
<%
var rsProgramacion__anuario = "1";
if (String(Request.QueryString("anuario")) != "undefined" && 
    String(Request.QueryString("anuario")) != "") { 
  rsProgramacion__anuario = String(Request.QueryString("anuario"));
}
%>
<%
var rsProgramacion = Server.CreateObject("ADODB.Recordset");
rsProgramacion.ActiveConnection = MM_ConnMeses_STRING;
rsProgramacion.Source = "SELECT *  FROM FECHAS  WHERE MES = '"+ rsProgramacion__MMColParam.replace(/'/g, "''") + "' AND ANO = "+ rsProgramacion__anuario.replace(/'/g, "''") + "";
rsProgramacion.CursorType = 0;
rsProgramacion.CursorLocation = 2;
rsProgramacion.LockType = 1;
rsProgramacion.Open();
var rsProgramacion_numRows = 0;
%>
<%
var Repeat1__numRows = -1;
var Repeat1__index = 0;
rsProgramacion_numRows += Repeat1__numRows;
%>
<% var MM_paramName = ""; %>
<%
// *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters

// create the list of parameters which should not be maintained
var MM_removeList = "&index=";
if (MM_paramName != "") MM_removeList += "&" + MM_paramName.toLowerCase() + "=";
var MM_keepURL="",MM_keepForm="",MM_keepBoth="",MM_keepNone="";

// add the URL parameters to the MM_keepURL string
for (var items=new Enumerator(Request.QueryString); !items.atEnd(); items.moveNext()) {
  var nextItem = "&" + items.item().toLowerCase() + "=";
  if (MM_removeList.indexOf(nextItem) == -1) {
    MM_keepURL += "&" + items.item() + "=" + Server.URLencode(Request.QueryString(items.item()));
  }
}

// add the Form variables to the MM_keepForm string
for (var items=new Enumerator(Request.Form); !items.atEnd(); items.moveNext()) {
  var nextItem = "&" + items.item().toLowerCase() + "=";
  if (MM_removeList.indexOf(nextItem) == -1) {
    MM_keepForm += "&" + items.item() + "=" + Server.URLencode(Request.Form(items.item()));
  }
}

// create the Form + URL string and remove the intial '&' from each of the strings
MM_keepBoth = MM_keepURL + MM_keepForm;
if (MM_keepBoth.length > 0) MM_keepBoth = MM_keepBoth.substring(1);
if (MM_keepURL.length > 0)  MM_keepURL = MM_keepURL.substring(1);
if (MM_keepForm.length > 0) MM_keepForm = MM_keepForm.substring(1);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><!-- InstanceBegin template="/Templates/INDEX.dwt.asp" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- InstanceBeginEditable name="doctitle" -->
<title>Documento sin t&iacute;tulo</title>
<!-- InstanceEndEditable --><style type="text/css">
<!--
.Estilo2 {
	font-family: Arial, Helvetica, sans-serif;
	font-weight: bold;
}
.Estilo6 {font-family: Arial, Helvetica, sans-serif; font-weight: bold; font-size: 12pt;}
-->
</style>
<!-- InstanceBeginEditable name="head" -->
<style type="text/css">
<!--
.Estilo7 {font-family: Arial, Helvetica, sans-serif}
.Estilo9 {font-size: 10pt}
-->
</style>
<!-- InstanceEndEditable -->
</head>

<body>
<table width="700" border="1" align="center">
  <tr>
    <td width="255"><A href="http://www.queralto.com/"></A><img src="Imagenes/logoqueralto_mail.gif" width="255" height="74"></td>
    <td align="right" valign="bottom"><div align="right" class="Estilo2"></div></td>
  </tr>
</table>
<!-- InstanceBeginEditable name="EditRegion4" -->
<table width="700" border="1" align="center">
  <tr>
    <td bgcolor="#FFFFCC"><div align="center" class="Estilo6">PROGRAMACIONES DE ENTREGAS </div></td>
  </tr>
</table>
<!-- InstanceEndEditable --><!-- InstanceBeginEditable name="EditRegion3" -->
<p align="center"><%=(rsProgramacion.Fields.Item("MES").Value)%> de <%=(rsProgramacion.Fields.Item("ANO").Value)%> </p>
<table width="100%" border="0">
  <tr bgcolor="#CCCCCC">
    <td><div align="center" class="Estilo2 Estilo9">DIA</div></td>
    <td><div align="center" class="Estilo2 Estilo9">FECHA</div></td>
    <td><div align="center" class="Estilo2 Estilo9">CENTRO</div></td>
    <td><div align="center" class="Estilo2 Estilo9">PROVINCIA</div></td>
    <td><div align="center" class="Estilo2 Estilo9">N&ordm; TRABAJADORES </div></td>
    <td><div align="center" class="Estilo2 Estilo9">PROGRAMADO</div></td>
    <td><p align="center" class="Estilo2 Estilo9">MONTAJE</p>
    </td>
</tr>
  <% while ((Repeat1__numRows-- != 0) && (!rsProgramacion.EOF)) { %>
  <tr bordercolor="1" bgcolor="#FFFFFF">
    <td><div align="left" class="Estilo7"><A HREF="Actualizar_registro.asp?<%= Server.HTMLEncode(MM_keepURL) + ((MM_keepURL!="")?"&":"") + "ID=" + rsProgramacion.Fields.Item("ID").Value %>"><%=(rsProgramacion.Fields.Item("DIA").Value)%></A></div></td>
    <td><div align="center" class="Estilo7"><%=(rsProgramacion.Fields.Item("FECHA").Value)%></div></td>
    <td><div align="center"><span class="Estilo7"><%=(rsProgramacion.Fields.Item("CENTRO").Value)%></span></div></td>
    <td><div align="center"><span class="Estilo7"><%=(rsProgramacion.Fields.Item("PROVINCIA").Value)%></span></div></td>
    <td><div align="center"><span class="Estilo7"><%=(rsProgramacion.Fields.Item("Nro_PERSONAS").Value)%></span></div></td>
    <td><div align="center"><span class="Estilo7"><%=(rsProgramacion.Fields.Item("PROGRAMADO").Value)%></span></div></td>
    <td><div align="center"><span class="Estilo7"><%=(rsProgramacion.Fields.Item("MONTAJE").Value)%></span></div></td>
  </tr>
  <%
  Repeat1__index++;
  rsProgramacion.MoveNext();
}
%>

</table>
<p>&nbsp;</p>
<!-- InstanceEndEditable -->
</body>
<!-- InstanceEnd --></html>
<%
rsProgramacion.Close();
%>
continua..........
  #3 (permalink)  
Antiguo 03/11/2005, 05:49
 
Fecha de Ingreso: noviembre-2004
Mensajes: 68
Antigüedad: 19 años, 5 meses
Puntos: 0
continua.........

Una vez en la 3ª página intoduzco los datos en el formulario y hago click en el botón "actualizar registro" asi me devuelve a la 2ª pagina donde puedo ver los datos actualizado.
El codigo de la 3ª página es:

Código:
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/ConnMeses.asp" -->
<!--#include file="Connections/ConFechas.asp" -->
<%
// *** Edit Operations: declare variables

// set the form action variable
var MM_editAction = Request.ServerVariables("SCRIPT_NAME");
if (Request.QueryString) {
  MM_editAction += "?" + Server.HTMLEncode(Request.QueryString);
}

// boolean to abort record edit
var MM_abortEdit = false;

// query string to execute
var MM_editQuery = "";
%>
<%
// *** Update Record: set variables

if (String(Request("MM_update")) == "form1" &&
    String(Request("MM_recordId")) != "undefined") {

  var MM_editConnection = MM_ConFechas_STRING;
  var MM_editTable  = "FECHAS";
  var MM_editColumn = "ID";
  var MM_recordId = "" + Request.Form("MM_recordId") + "";
  var MM_editRedirectUrl = "RESULTADO_MES.asp";
  var MM_fieldsStr = "ANO|value|MES|value|DIA|value|FECHA|value|CENTRO|value|PROVINCIA|value|Nro_PERSONAS|value|PROGRAMADO|value|MONTAJE|value";
  var MM_columnsStr = "ANO|none,none,NULL|MES|',none,''|DIA|',none,''|FECHA|',none,NULL|CENTRO|',none,''|PROVINCIA|',none,''|Nro_PERSONAS|',none,''|PROGRAMADO|',none,''|MONTAJE|',none,''";

  // create the MM_fields and MM_columns arrays
  var MM_fields = MM_fieldsStr.split("|");
  var MM_columns = MM_columnsStr.split("|");
  
  // set the form values
  for (var i=0; i+1 < MM_fields.length; i+=2) {
    MM_fields[i+1] = String(Request.Form(MM_fields[i]));
  }

  // append the query string to the redirect URL
  if (MM_editRedirectUrl && Request.QueryString && Request.QueryString.Count > 0) {
    MM_editRedirectUrl += ((MM_editRedirectUrl.indexOf('?') == -1)?"?":"&") + Request.QueryString;
  }
}
%>
<%
// *** Update Record: construct a sql update statement and execute it

if (String(Request("MM_update")) != "undefined" &&
    String(Request("MM_recordId")) != "undefined") {

  // create the sql update statement
  MM_editQuery = "update " + MM_editTable + " set ";
  for (var i=0; i+1 < MM_fields.length; i+=2) {
    var formVal = MM_fields[i+1];
    var MM_typesArray = MM_columns[i+1].split(",");
    var delim =    (MM_typesArray[0] != "none") ? MM_typesArray[0] : "";
    var altVal =   (MM_typesArray[1] != "none") ? MM_typesArray[1] : "";
    var emptyVal = (MM_typesArray[2] != "none") ? MM_typesArray[2] : "";
    if (formVal == "" || formVal == "undefined") {
      formVal = emptyVal;
    } else {
      if (altVal != "") {
        formVal = altVal;
      } else if (delim == "'") { // escape quotes
        formVal = "'" + formVal.replace(/'/g,"''") + "'";
      } else {
        formVal = delim + formVal + delim;
      }
    }
    MM_editQuery += ((i != 0) ? "," : "") + MM_columns[i] + " = " + formVal;
  }
  MM_editQuery += " where " + MM_editColumn + " = " + MM_recordId;

  if (!MM_abortEdit) {
    // execute the update
    var MM_editCmd = Server.CreateObject('ADODB.Command');
    MM_editCmd.ActiveConnection = MM_editConnection;
    MM_editCmd.CommandText = MM_editQuery;
    MM_editCmd.Execute();
    MM_editCmd.ActiveConnection.Close();

    if (MM_editRedirectUrl) {
      Response.Redirect(MM_editRedirectUrl);
    }
  }

}
%>
<%
var Recordset1__MMColParam = "1";
if (String(Request.QueryString("ID")) != "undefined" && 
    String(Request.QueryString("ID")) != "") { 
  Recordset1__MMColParam = String(Request.QueryString("ID"));
}
%>
<%
var Recordset1 = Server.CreateObject("ADODB.Recordset");
Recordset1.ActiveConnection = MM_ConnMeses_STRING;
Recordset1.Source = "SELECT * FROM FECHAS WHERE ID = "+ Recordset1__MMColParam.replace(/'/g, "''") + "";
Recordset1.CursorType = 0;
Recordset1.CursorLocation = 2;
Recordset1.LockType = 1;
Recordset1.Open();
var Recordset1_numRows = 0;
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
<style type="text/css">
<!--
.Estilo2 {	font-family: Arial, Helvetica, sans-serif;
	font-weight: bold;
}
.Estilo6 {font-family: Arial, Helvetica, sans-serif; font-weight: bold; font-size: 12pt;}
-->
</style>
</head>

<body>
<table width="700" border="1" align="center">
  <tr>
    <td width="255"><A href="http://www.queralto.com/"></A></td>
    <td align="right" valign="bottom"><div align="right" class="Estilo2"></div></td>
  </tr>
</table>
<table width="700" border="1" align="center">
  <tr>
    <td bgcolor="#FFFFCC"><div align="center" class="Estilo6">
        <p>PROGRAMACIONES DE ENTREGAS <br>
          Inserte los datos de la nueva entrega. </p>
    </div></td>
  </tr>
</table>
<div align="center"><br>
  <form method="POST" action="<%=MM_editAction%>" name="form1">
    <table align="center">
      <tr valign="baseline">
        <td nowrap align="right">ANO:</td>
        <td><input type="text" name="ANO" value="<%=(Recordset1.Fields.Item("ANO").Value)%>" size="32">
        </td>
      </tr>
      <tr valign="baseline">
        <td nowrap align="right">MES:</td>
        <td><input type="text" name="MES" value="<%=(Recordset1.Fields.Item("MES").Value)%>" size="32">
        </td>
      </tr>
      <tr valign="baseline">
        <td nowrap align="right">DIA:</td>
        <td><input type="text" name="DIA" value="<%=(Recordset1.Fields.Item("DIA").Value)%>" size="32">
        </td>
      </tr>
      <tr valign="baseline">
        <td nowrap align="right">FECHA:</td>
        <td><input type="text" name="FECHA" value="<%=(Recordset1.Fields.Item("FECHA").Value)%>" size="32">
        </td>
      </tr>
      <tr valign="baseline">
        <td nowrap align="right">CENTRO:</td>
        <td><input type="text" name="CENTRO" value="<%=(Recordset1.Fields.Item("CENTRO").Value)%>" size="32">
        </td>
      </tr>
      <tr valign="baseline">
        <td nowrap align="right">PROVINCIA:</td>
        <td><input type="text" name="PROVINCIA" value="<%=(Recordset1.Fields.Item("PROVINCIA").Value)%>" size="32">
        </td>
      </tr>
      <tr valign="baseline">
        <td nowrap align="right">Nro_PERSONAS:</td>
        <td><input type="text" name="Nro_PERSONAS" value="<%=(Recordset1.Fields.Item("Nro_PERSONAS").Value)%>" size="32">
        </td>
      </tr>
      <tr valign="baseline">
        <td nowrap align="right">PROGRAMADO:</td>
        <td><input type="text" name="PROGRAMADO" value="<%=(Recordset1.Fields.Item("PROGRAMADO").Value)%>" size="32">
        </td>
      </tr>
      <tr valign="baseline">
        <td nowrap align="right">MONTAJE:</td>
        <td><input type="text" name="MONTAJE" value="<%=(Recordset1.Fields.Item("MONTAJE").Value)%>" size="32">
        </td>
      </tr>
      <tr valign="baseline">
        <td nowrap align="right">&nbsp;</td>
        <td><input name="Actualizar" type="submit" id="Actualizar" value="Actualizar registro">
        </td>
      </tr>
    </table>
    <input type="hidden" name="MM_update" value="form1">
    <input type="hidden" name="MM_recordId" value="<%= Recordset1.Fields.Item("ID").Value %>">
  </form>
  <p>&nbsp;</p>
</div>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>
</body>
<% var rsProgramacion__ID = "" %>

</html>
<%
Recordset1.Close();
%>
Hasta aqui todo bien, el problema viene ahora cuando hago click en un nuevo dia, me deberia de enviar de nuevo a la 3ª pagina para completar el formulario, pero me da el siguiente error:

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (coma) en la expresión de consulta 'ID = 8, 9'.
/reparto_programaciones/Actualizar_registro.asp, line 106

No entiendo mucho de esto, pero creo que el problema esta en la barra de dirección ya que envia dos valores para el Id, de esta forma:
http://localhost/reparto_programacio...bmit=Ejecutar&ID=8&ID=9

¿Como puedo hacer para que funcione correctamente?

Muchas gracias a todos.
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:47.