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

formulario actualización no funciona

Estas en el tema de formulario actualización no funciona en el foro de ASP Clásico en Foros del Web. Hola, yo había terminado de "programar" un sitio ASP con dreamweaver, en mi servidor local. este sitio funcionaba de maravilla, pero cuando lo fui a ...
  #1 (permalink)  
Antiguo 31/08/2006, 08:13
 
Fecha de Ingreso: diciembre-2004
Mensajes: 49
Antigüedad: 20 años, 4 meses
Puntos: 0
formulario actualización no funciona

Hola, yo había terminado de "programar" un sitio ASP con dreamweaver, en mi servidor local. este sitio funcionaba de maravilla, pero cuando lo fui a pasar a un servidor contratado este no marchaba.

Ya pude resolver la lectura de la base de datos, pero no logro modificar los datos de esta mediante un formulario.

Aquí hago una descripción de mi problema:

en el panel de control que estoy haciendo para el sitio me dá este error:


ADODB.Command error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/administrador_actualizar.asp, line 109




mi codigo es el siguiente

Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection (linea 109)
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close


si alguien sabe como solucionar esto, muchas gracias.

si sirve como información:
mis recordsets definidos de esta forma no andaban:

Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_connaryart_STRING
Recordset1.Source = "SELECT * FROM..."
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()


los tuve que escribir de esta manera:

Set Recordset1 = oConn.Execute("SELECT * FROM...")

muchas gracias
  #2 (permalink)  
Antiguo 31/08/2006, 08:24
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
¿dónde defines u abres el objeto de conexión MM_editConnection?
  #3 (permalink)  
Antiguo 31/08/2006, 09:54
 
Fecha de Ingreso: diciembre-2004
Mensajes: 49
Antigüedad: 20 años, 4 meses
Puntos: 0
Escribo el codigo de mi página para que lo entiendas mejor

gracias


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../Connections/connaryart.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
End If

' boolean to abort record edit
MM_abortEdit = false

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

If (CStr(Request("MM_update")) = "form1" And CStr(Request("MM_recordId")) <> "") Then

MM_editConnection = MM_connaryart_STRING
MM_editTable = "usuarios"
MM_editColumn = "id_usuario"
MM_recordId = "" + Request.Form("MM_recordId") + ""
MM_editRedirectUrl = "exito.asp"
MM_fieldsStr = "usuario|value|contrasena|value"
MM_columnsStr = "usuario|',none,''|contrasena|',none,''"

' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")

' set the form values
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
Next

' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If

End If
%>
<%
' *** Update Record: construct a sql update statement and execute it

If (CStr(Request("MM_update")) <> "" And CStr(Request("MM_recordId")) <> "") Then

' create the sql update statement
MM_editQuery = "update " & MM_editTable & " set "
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),",")
MM_delim = MM_typeArray(0)
If (MM_delim = "none") Then MM_delim = ""
MM_altVal = MM_typeArray(1)
If (MM_altVal = "none") Then MM_altVal = ""
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = "none") Then MM_emptyVal = ""
If (MM_formVal = "") Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> "") Then
MM_formVal = MM_altVal
ElseIf (MM_delim = "'") Then ' escape quotes
MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_editQuery = MM_editQuery & ","
End If
MM_editQuery = MM_editQuery & MM_columns(MM_i) & " = " & MM_formVal
Next
MM_editQuery = MM_editQuery & " where " & MM_editColumn & " = " & MM_recordId

If (Not MM_abortEdit) Then
' execute the update
Set 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 <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If

End If
%>
<%
Dim Recordset1__MMColParam
Recordset1__MMColParam = "0"
If (Request.Form("id_usuario") <> "") Then
Recordset1__MMColParam = Request.Form("id_usuario")
End If
%>
<%
Dim Recordset1
Dim Recordset1_numRows

Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_connaryart_STRING
Recordset1.Source = "SELECT * FROM usuarios WHERE id_usuario = " + Replace(Recordset1__MMColParam, "'", "''") + ""
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()


El recordset en verde que sirve para leer la base de datos, no funciona tampoco, pero reescribiendolo asi si funciona:

Set Recordset1 = oConn.Execute("SELECT * FROM usuarios WHERE id_usuario = " + Replace(Recordset1__MMColParam, "'", "''") + "")


Recordset1_numRows = 0
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Actualizar Administrador</title>
<style type="text/css">
<!--
@import url("../estilos.css");
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
background-color: #E5F0F8;
}
-->
</style>
</head>

<body>
<% If Not Recordset1.EOF Or Not Recordset1.BOF Then %>
<div align="center" class="texto_2">Actualizar Administrador <span class="texto_1"><br />
Cambie el nombre de Usuario y/o Contrase&ntilde;a</span><br />
</div>
<form method="POST" action="<%=MM_editAction%>" name="form1">
<table align="center" bgcolor="#0099FF">
<tr valign="baseline">
<td align="right" nowrap class="fondo_azul">Usuario:</td>
<td><input type="text" name="usuario" value="<%=(Recordset1.Fields.Item("usuario").Value )%>" size="32">
</td>
</tr>
<tr valign="baseline">
<td align="right" nowrap class="fondo_azul">Contrasena:</td>
<td><input type="password" name="contrasena" value="<%=(Recordset1.Fields.Item("contrasena").Va lue)%>" size="32">
</td>
</tr>
<tr valign="baseline">
<td align="right" nowrap class="fondo_azul">&nbsp;</td>
<td><input type="submit" value="Actualizar">
</td>
</tr>
</table>
<input type="hidden" name="MM_update" value="form1">
<input type="hidden" name="MM_recordId" value="<%= Recordset1.Fields.Item("id_usuario").Value %>">
</form>
<% End If ' end Not Recordset1.EOF Or NOT Recordset1.BOF %>
<% If Recordset1.EOF And Recordset1.BOF Then %>
<table width="300" height="40" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="center" valign="middle" bgcolor="#0099FF"><div align="center" class="fondo_azul">Ud. No es un usuario con acceso. <br />
</div></td>
</tr>
</table>
<% End If ' end Recordset1.EOF And Recordset1.BOF %>
<p>&nbsp;</p>
</body>
</html>
<%
Recordset1.Close()
Set Recordset1 = Nothing
%>


gracias por tu ayuda
  #4 (permalink)  
Antiguo 01/09/2006, 05:28
 
Fecha de Ingreso: diciembre-2004
Mensajes: 49
Antigüedad: 20 años, 4 meses
Puntos: 0
Porfavor si alguien me puede dar una mano con esto, se lo agradezco en pila.
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 14:21.