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

Como hago un Update en asp ???

Estas en el tema de Como hago un Update en asp ??? en el foro de ASP Clásico en Foros del Web. HOla que tal, me ha vuelto la duda de como hacer un update en una tabla de access al enviar los valores desde un formulario, ...
  #1 (permalink)  
Antiguo 30/06/2005, 09:03
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
Pregunta Como hago un Update en asp ???

HOla que tal, me ha vuelto la duda de como hacer un update en una tabla de access al enviar los valores desde un formulario, tengo un combo con un select multiple y lo lleno con los valores de una tabla, en mi tabla tengo un campo de status y quiero actualizar este campo siempre y cuando haya seleccionado tal opcion del combo.

entonces en donde hago el update?? en la pag asp que llama el formulario o donde?? y como ???

gracias
  #2 (permalink)  
Antiguo 30/06/2005, 09:06
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 20 años, 1 mes
Puntos: 4
Bueno, al ver esto la validación se haria en el alado del cliente, una vez que cumple la condicion lo envias.

Esto evita que valides desde la página asp y volver a regresar.

Esto lo podrias hacer con Javascript.
  #3 (permalink)  
Antiguo 30/06/2005, 09:11
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
mmmmm, ijoles no me quedo muy claro :S
  #4 (permalink)  
Antiguo 30/06/2005, 09:26
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola!

Bueno, validar con javascript nunca debe ser la base de tu validación, es decir, siempre obligatoriamente debes validar en tu ASP, sin exepción, la validación de JavaScript es una "ayuda al cliente y al servidor", donde, si desde ese punto podemos ver el error, evitamos al servidor el proceso del ASP innecesario, y al cliente el tiempo que este proceso tarda, es decir, validar con JavaScript es una cortesía extra para el cliente, pero la validación en ASP nunca debe de ser ignorada... por muchas buenas razones.

Y bueno, volviendo al tema, mira, tu tienes esto:

1. pagina1.asp --> Donde presentas el formulario

2. procesa.asp --> Donde recibes los datos del formulario y procesas la info.

Bueno, donde debes actualizar la base de datos, lógicamente es en procesa.asp, ya que esta página es la que sabe que fué lo que elijió el usuario.

Para actualizar, todo el proceso es igual a como has hecho un select, un insert, etc., solo que ahora usarás la sentencia:

update tabla set campo = x where y = z

Algo asi, pero eso ya depende de tus propias condiciones.
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #5 (permalink)  
Antiguo 30/06/2005, 09:50
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
si claro NEURON, pero mi duda esta en la sintaxis, no encuentro como hacerle si yo tengo un codigo q mne funciona bien para el select que es este :

conup = "Provider=Microsoft.Jet.OLEDB.4.0; " & ";Data Source=" & Server.Mappath("\db\" + "stands.mdb") & ";" & "Persist Security Info=False;Jet OLEDB:Database Password="
Set rsup = Server.CreateObject("ADODB.Recordset")
rsup.ActiveConnection = conup
rsup.Source = "Select * from stands")
rsup.CursorType = 2
rsup.CursorLocation = 2
rsup.LockType = 3
rsup.Open


entonces como le puedo hacer para que yo haga el update !!!!, ando buscando la sintaxis correcta pero no la hayo
  #6 (permalink)  
Antiguo 30/06/2005, 09:54
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola!

Cita:
Iniciado por Gaby_Corr

entonces en donde hago el update?? en la pag asp que llama el formulario o donde?? y como ???

gracias
Sorry, te conteste lo de las paginas por esa pregunta que hiciste y lo de javascript por lo que puso Oharo de no validar en ASP, bueno, por otra parte, la sintaxis del update es la que te puse, sin embargo, para poder ayudarte mejor en tu caso, dime como tienes ahorita para hacer un select, un insert, etc., como lo haces, si tienes codigo que ya te funciona para hacer esas cosas, entonces sera mejor adaptarlo para el update.

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #7 (permalink)  
Antiguo 30/06/2005, 10:11
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
bueno , aki te paso el codigo del formulario primero:
<TD>
<%
Dim conexion
Dim rds
conexion = "Provider=Microsoft.Jet.OLEDB.4.0; " & ";Data Source=" & Server.Mappath("\db\" + "stands.mdb") & ";" & "Persist Security Info=False;Jet OLEDB:Database Password="
Set rds = Server.CreateObject("ADODB.Recordset")
rds.ActiveConnection = conexion
rds.Source = "SELECT * FROM stands" & " WHERE ocupado = 0"
rds.CursorType = 2
rds.CursorLocation = 2
rds.LockType = 3
rds.Open
response.Write "<FONT SIZE=""2"" FACE=""Arial""><B>*No. Stands:</B></FONT><td><select multiple size=""5"" name=""combo"" >"
response.Write "<option value="""">Seleccione No. Stands &nbsp;&nbsp;&nbsp;&nbsp;</option>"
Do While (NOT rds.EOF)
id_stand = rds("stand")
descripcion = rds("pabellon")
Response.Write "<OPTION VALUE=""" & id_stand & """>" & id_stand & " - " & descripcion & "</OPTION>"
rds.MoveNext
Loop
Response.Write "</select>"
on error resume next
rds.Close
Set rds = Nothing
%>
</TD>


entonces despues en la pag procesa.asp (ejem) como le haria para hacer el update con esa mismas sentencias para hacer la conexion ???, esa es mi duda
  #8 (permalink)  
Antiguo 30/06/2005, 10:24
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
Hice la prueba con esa:
Dim cn
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & ";Data Source=" & Server.Mappath("\db\" + "stands.mdb") & ";" & "Persist Security Info=False;Jet OLEDB:Database Password="
cn.Execute "UPDATE stands Set ocupado=1" & " WHERE stand = " & request.form("combo")


pero, en el request.form(combo) me trae la cadena de las opciones seleccionadas y me marca error:

Syntax error (comma) in query expression 'stand = 1, 5'.

como le puedo hacer para q me tome uno por uno los valores q yo haya seleccionado y los actualice??
  #9 (permalink)  
Antiguo 30/06/2005, 10:31
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola!

Ok, ya es un avance importante...

Bueno, el combo, revisa como lo recibes haciendo:

Reponse.write request.form("combo")
Response.End()

Si lo recibes dividido por ",", entonces haz esto

arrVar = split(request.form("combo"), ",")

Entonces haz cun ciclo basado en arrVar para correr el update uno por uno, como:

largo = ubound(arrVar)
for i = 0 to largo

cn.Execute "UPDATE stands Set ocupado=1" & " WHERE stand = " & arrVar(i)

next

Asi seria lo mas facil basado con lo que ya tienes

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #10 (permalink)  
Antiguo 30/06/2005, 10:37
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
claro, te lo interpreta como si le estuvieras pasando dos valores, acordate que en una sentencia SQL los elementos que vas actualizando, insertando o borrando, se separan por coma. Tendrías que poner así:
UPDATE stands Set ocupado = 1" & " WHERE Stand IN ( " & Request.Form("combo") & ")".
El IN te permite actualizar todos aquellosregistros en donde el campo Stand tenga los valores que le pasas dentro del paréntesis, separados por coma, cosa que ya tienes hecha porque desde el mismo formulario te vienen así.
Saludos y espero que haya sido de ayuda!-
__________________
Add, never Remove
  #11 (permalink)  
Antiguo 30/06/2005, 10:47
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
bueno pues me marca error !!!!

Microsoft JET Database Engine (0x80004005)
Operation must use an updateable query.

en la linea del execute!!!

no sera por el tipo de dato, en mi tabla lo manejo como numerico, pero creo q me lo pasa como caracter no????
  #12 (permalink)  
Antiguo 30/06/2005, 11:07
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola!

Ahora lo que marca es que esa tabla no tiene permisos para que la actualizes, entonces mira ya la cuestion de permisos sobre la tabla stands.mdb

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #13 (permalink)  
Antiguo 30/06/2005, 11:09
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
ah ok, voy a revisar, gracias!!!!!
  #14 (permalink)  
Antiguo 30/06/2005, 11:15
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
pues ya le puse los permisos y aun asi, me sigue marcando eso, como le puedo hacer??
  #15 (permalink)  
Antiguo 30/06/2005, 11:18
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola

Corre la consulta directo en tu administrador de bases de datos para comprobar que funciona correctamente, es más facil ver errores ahí.

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #16 (permalink)  
Antiguo 30/06/2005, 11:19
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Que permisos le pusiste?
Este es si o si un error de permisos como ya te dijeron:

1.- Permisos de escritura sobre el folder que tiene la DB
2.- Permisos de escritura sobre la DB
3.- Que no este en modo lectura la DB
4.- Permisos de escritura al usuario anonimo del IIS


Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #17 (permalink)  
Antiguo 30/06/2005, 11:28
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
todo eso en el IIS correcto ???
por que lo que veo ahi , tiene activado Lectura en la DB y en la carpeta que contiene la db, entonces ahi se lo tengo q quitar ??, no me afecta para hacer los Selects a las tablas ???

U_Goldman este punto donde lo veo???
4.- Permisos de escritura al usuario anonimo del IIS
  #18 (permalink)  
Antiguo 30/06/2005, 11:30
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
Neuron, contestando a lo q me escribiste, no se como correr ese update desde access , que pena mi caso verdad, jajaja, pero si me dices como lo hago, jeje
  #19 (permalink)  
Antiguo 30/06/2005, 11:31
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Cita:
Iniciado por Gaby_Corr
todo eso en el IIS correcto ???
No, solamente lo ultimo aplica al IIS, lo demas son permisos a nivel de Win, el error es de disco duro, click derecho sobre el folder -> propiedades ->seguridad
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #20 (permalink)  
Antiguo 30/06/2005, 11:38
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
ijoles si lo tengo en c:\inetpub\wwwroot\db\stand.mdb, no hay problema ??
  #21 (permalink)  
Antiguo 30/06/2005, 11:43
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Solo fijate que db\stand.mdb este folder y la DB tenga esos permisos...

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #22 (permalink)  
Antiguo 30/06/2005, 11:47
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
, no puedo, ya le quite el atributo, read-only a las carpeta y a la DB y ni asi, me sigue marcando el mismo error, y la opcion $ q me da u_golmand no la veo , a que mas le puedo mover para que funcione
  #23 (permalink)  
Antiguo 30/06/2005, 15:24
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
YA se Pudo !!!!!

Chicos muchas Gracias, por fin se pudo!!!
disculpen las molestias pero es que han de comprender que soy nueva en esto

Ustedes si que me han ayudado un buen!!!
GRACIAS DE NUEVO

saludos =D
  #24 (permalink)  
Antiguo 30/06/2005, 15:26
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Nada de gracias, manana te tocan las cervezas!
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #25 (permalink)  
Antiguo 30/06/2005, 15:40
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
Bueno, esta bien!!!!, yo las pongo pero nada mas dejense caer aca en Monterrey
  #26 (permalink)  
Antiguo 15/08/2005, 13:26
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
ahora vuelvo con el mismo problema, pero no se que sea, lo unico que cambie fue la conexion, y no lo puedo revisar de manera local, lo estoy revisando desde el dominio
este es mi codigo:

Set cn = Server.CreateObject("ADODB.Connection")
set rs = server.createobject("ADODB.RecordSet")
filePath = Server.MapPath("\cgi-bin\" + "stands.mdb")
cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +filePath)

squery = "SELECT * FROM standgdl " & " WHERE stand IN (" & request.form("combo") & ")"
rs.open squery,cn
cn.Execute "UPDATE standgdl Set ocupado=1" & " WHERE stand IN (" & request.form("combo") & ")"


que pueda ser, se q con el usuario, pero estando alla en el servidor no hayo como hacerle, grcias
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 04:49.