Lo primero advertir que soy un aficionado... he programado varias cosas para mi empresa a provechando un cursillo antiguo de VisualBasic y mucho, mucho googlear... pero mi nivel es de 'pardillo'.
Tengo un codigo en ASP, conectado con ORACLE, en el que se trabaja con tablas temporales, que el usuario puede ir volcando en una tabla definitiva, haciendo click en uno de los dos botones de la pagina.
- Uno de ello graba en 'disco' los datos bajo 'modo=1' (equivale a borrador)
- Y el otro lo graba en 'modo=3' (definitivo)
En modo definitivo (=3), el botón sólo se activa -con javascript- cuando ha contestado a todas las preguntas de la evaluacion (para que no quede grabado como definitivo un cuestionario a medias...)
Problema?...
Cuando el modo=1 sólo lo graba una vez. Es decir, si contesto a 5,6 o 9 preguntas y lo grabo con modo=1, eso lo hace ok. Si luego sigo contestado otras preguntas más y vuelvo a grabar en modo borrador (=1), no lo hace... Sólo deja grabado lo primero que he hecho... Es como en modo=1 sólo funciona una vez.
El modo definitivo lo hace siempre bien... aquí el código funciona siempre bien... Puedo hacerlo varias veces, cambiando las respuestas, y en cada una de las veces lo hace ok, registrando los cambios. Pero sólo si modo=3 ...
Este es el trozo de código implicado...
Código:
A ver si alguien puede revisar el código y darme pistas....'la variable "modo" la hemos recogido desde el form de la página... 'primero cambiamos en tmptable el modo a Modo=9 y lo insertamos en tmpedconductas con modo =9 application("db").execute("update " & tmp_tabla & " set modo = 9, codigo= codemple+competencia+clave") application("db").EXECUTE("INSERT INTO EDTMP_CONDUCTAS SELECT CODIGO, EMPRESA, CODEMPLE,ANYO , VALOR, MODO, RESULTADO, COMPETENCIA, COMPETXT, CLAVE, DESCRIPCION, PONDERA, CODIGOEVALUAD1, CODIGOEVALUAD2, FECHAULTMTO FROM "&tmp_tabla&"") 'luego borramos con delete los registros de EDTMP_CONDUCTAS que tengan modo = modo application("db").execute("delete from EDTMP_CONDUCTAS where CODEMPLE= " & evaluado & " and ANYO= " & anyo_edtempor& " and modo = " & modo & "") ' si se graba como definitivo, eliminamos el borrador... if modo=3 then application("db").execute("delete from EDTMP_CONDUCTAS where CODEMPLE= " & evaluado & " and ANYO= " & anyo_edtempor& " and modo = 1") end if 'finalmente updatamos los modo=9 a modo=modo application("db").execute("update EDTMP_CONDUCTAS set modo = " & modo & " where CODEMPLE= " & evaluado & " and ANYO= " & anyo_edtempor& " and modo = 9") 'la tabla temporal le quitamos el modo=9 application("db").execute("update " & tmp_tabla & " set modo = " & modo & "")
Gracias a tod@s!!
Fernando