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

| |||
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. |
| ||||
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. |
| ||||
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 ![]() |
| ||||
Hola! Cita: 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.
Iniciado por Gaby_Corr entonces en donde hago el update?? en la pag asp que llama el formulario o donde?? y como ??? gracias ![]() Suerte!! |
| ||||
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 </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 ![]() ![]() |
| ||||
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?? |
| ||||
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!! |
| |||
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 |
| ||||
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???? |
| ||||
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 |
| ||||
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 |
| ||||
Cita: 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
Iniciado por Gaby_Corr todo eso en el IIS correcto ???
__________________ "El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera." -- Ernest Hemingway |
| ||||
![]() Salu2,
__________________ "El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera." -- Ernest Hemingway |
| ||||
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 |