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

ORACLE-ASP : Insert Into Select (inconsistencias...)

Estas en el tema de ORACLE-ASP : Insert Into Select (inconsistencias...) en el foro de ASP Clásico en Foros del Web. Hola a tod@s Lo primero advertir que soy un aficionado... he programado varias cosas para mi empresa a provechando un cursillo antiguo de VisualBasic y ...
  #1 (permalink)  
Antiguo 19/09/2011, 12:03
 
Fecha de Ingreso: julio-2007
Mensajes: 16
Antigüedad: 16 años, 10 meses
Puntos: 2
ORACLE-ASP : Insert Into Select (inconsistencias...)

Hola a tod@s

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 borrador (=1), el usuario debería poder ir grabando el trabajo (es un formulario de evaluacion de personal) cuando quiera, y debe grabarse lo que haya ido haciendo hasta que decide guardar en modo=1.

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:
'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 & "")
A ver si alguien puede revisar el código y darme pistas....

Gracias a tod@s!!

Fernando

Última edición por Canal_on; 20/09/2011 a las 00:57
  #2 (permalink)  
Antiguo 21/09/2011, 02:23
 
Fecha de Ingreso: julio-2007
Mensajes: 16
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: ORACLE-ASP : Insert Into Select (SOLUCIONADO... era el caché)

Parece que ya funciona bien... era el caché del navegador el que daba el problema

solucionado poniendo en el codigo html
Código HTML:
<META HTTP-EQUIV="expires" CONTENT="0">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 

Gracias!




Cita:
Iniciado por Canal_on Ver Mensaje
Hola a tod@s

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 borrador (=1), el usuario debería poder ir grabando el trabajo (es un formulario de evaluacion de personal) cuando quiera, y debe grabarse lo que haya ido haciendo hasta que decide guardar en modo=1.

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:
'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 & "")
A ver si alguien puede revisar el código y darme pistas....

Gracias a tod@s!!

Fernando

Etiquetas: asp, insert, oracle, select
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 03:22.