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

Update Múltiple

Estas en el tema de Update Múltiple en el foro de ASP Clásico en Foros del Web. Estoy cansado, no logro encontrar el error. Les paso el código a ver si me ayudan, primero el error: En primer lugar se ven las ...
  #1 (permalink)  
Antiguo 21/10/2011, 23:32
Avatar de JJF
JJF
 
Fecha de Ingreso: mayo-2005
Mensajes: 205
Antigüedad: 19 años, 6 meses
Puntos: 0
Sonrisa Update Múltiple

Estoy cansado, no logro encontrar el error.
Les paso el código a ver si me ayudan, primero el error:
En primer lugar se ven las variables que envío de la pagina anterior.

Cita:
id=1, 2, 3, 4, 5, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49
historial=1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Realizados=11, 8, 4, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (comma) in query expression 'id = 1, 2, 3, 4, 5, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49'.

/test/admin/alta-part-a-0-1-a.asp, line 54



Cita:

<%
if session("CONTROL")<>1 then
response.redirect "login.asp"
end if

Dim HECHOS, ID, GOLES

id =request("id")
goles =request("goles")
convertidos=request("HECHOS")


total=goles+convertidos

' Lo siguiente es para comprobar que las variables se vean.

response.write"id="&id&""

response.write "<br>"

response.write"historial="&goles&""

response.write "<br>"


response.write"Realizados="&convertidos&""

response.write "<br>"

response.write hechos
response.write "<br>"

' ahora el update


var1=request.form("id") 'Asigna los datos que viene de la otra pagina
var2=split(var1,",") 'Elimina las comas que contengan esos valores y asigna los valores a "var1"

Set Base = Server.CreateObject("ADODB.Connection")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ= " & Server.MapPath("/test/DB/LGTV.mdb")


for i=LBound(var2) to UBound(var2) 'Toma a "var2" como un arreglo y lo recorre de principio a fin

'Elimina, si hubiera espacios en blanco al inicio y final de cada elemento y los asigna a la variable "id"

' ESTA LÍNEA TAMBIÉN ME DA ERROR PERO AHORA NO CUENTA id=Trim(var2)

sql="update JUGADORES SET goles= '"&total&"' where id = " & Request("id")


Conn.Execute(SQL)
Response.Write SQL
Response.End ()
next
Conn.close
set Conn=nothing


%>
Porfa, me quedan 3 neuronas y encima están peleadas.
  #2 (permalink)  
Antiguo 24/10/2011, 10:49
Avatar de JJF
JJF
 
Fecha de Ingreso: mayo-2005
Mensajes: 205
Antigüedad: 19 años, 6 meses
Puntos: 0
Respuesta: Update Múltiple

NAdie? le doy vueltas por todos lados y no logro nada!
  #3 (permalink)  
Antiguo 24/10/2011, 16:55
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 11 meses
Puntos: 98
Respuesta: Update Múltiple

Mmmhh pues la verdad es que a simple vista no logro entender que es lo que necesitas hacer, por favor explica a detalle de que se trata tu programa y quizás te podremos asesorar mejor.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #4 (permalink)  
Antiguo 24/10/2011, 18:03
Avatar de JJF
JJF
 
Fecha de Ingreso: mayo-2005
Mensajes: 205
Antigüedad: 19 años, 6 meses
Puntos: 0
Respuesta: Update Múltiple

Ok, gracias por atenderme, es de un sistema que actualiza los goles que cada jugador hace en cada partido.

Envío unas 3 variables desde un form, los goles ya hechos, los que se agregan:


Cita:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ= " & Server.MapPath("/test/DB/LGTV.mdb")
%>

<table>

<%

Ssql = "SELECT * FROM JUGADORES WHERE EQUIPO = " & Request("EQUI1")
Set rs5=Conn.Execute(Ssql)

do while not rs5.eof
%>


<tr>
<td>

'aquí se agregan los goles que convierte
<input type="text" name="GOLES" size="3" value="0">

'id del jugador
<input type=text name=ID value=<%=rs5("ID")%>>

'goles ya realizados
<input type=text name=HECHOS value=<%=rs5("GOLES")%>>

</td>
</tr>


<%
rs5.movenext
loop
set rs5=nothing
%>

</table>

Luego, en la página que recibo los datos, sumo las variables HECHOS + GOLES; ese resultado es que quiero me modifique en la db.
  #5 (permalink)  
Antiguo 27/10/2011, 05:25
 
Fecha de Ingreso: septiembre-2011
Mensajes: 116
Antigüedad: 13 años, 3 meses
Puntos: 8
Respuesta: Update Múltiple

Me gustaría ayudarte, pero como dice u_goldman explica bien y detalladamente que es lo que quieres hacer porque no se entiende nada, en el titulo pone Update múltiple sin embargo el código es lioso.
  #6 (permalink)  
Antiguo 27/10/2011, 10:34
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años
Puntos: 16
Respuesta: Update Múltiple

yo tampoco entendi mucho, solo un consejo, por que en lugar de un listado largo de response.write por que no te sales de asp con %> y pones html limpio ?? digo, te ahorrarias mucho texto
  #7 (permalink)  
Antiguo 06/08/2013, 04:46
 
Fecha de Ingreso: septiembre-2009
Mensajes: 15
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Update Múltiple

Estás haciendo mal el UpDate

sql="update JUGADORES SET goles= '"&total&"' where id = " & Request("id")

debería ser
sql=update JUGADORES SET goles= '"&total&"' where id in("& var2(i) &")"


si el total va a varia en cada número de jugadores, entonces el campo total también debe ser una variable, en éste caso goles =("& var4(i) &")" (observa que aquí tras goles está el signo igual, y no "in")
Pero tendrá que designar goles... ¿ves por dónde voy?

Etiquetas: múltiple, update
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 00:37.