PiensoPienso I


Mi padre siempre nos planetaba problemas a la hora de la cena. A los mas chicos, les tocaba VeoVeo, y a los mas grandes PiensoPienso. Como somos 6 hermanos y yo soy el tercero algunas veces podia lucirme con los primeros y me costaban un poco más los segundos.

Tiro un problema "Facil y de ingenio", por si alguien quiere resolverlo y contestarlo en los comentarios. He visto que alguno de estos conceptos les cuesta a los que recien empiezan con Genexus y producen muchos bloqueos en la base de datos.

Tengo una tabla con los valores

Id* Descripcion
10 Diez
20 Entre Diez y Treinta
30 Treinta

Hago un procedimiento GeneXus que hace

For each
   If Id=20
     Descripcion='Veinte'
   Endif
Endfor

La pregunta es:
Cuantas sentencias UPDATE se realizan en la base de datos?

Para los mas chicos, va con multiple opción
a) 1
b) 3
c) 6

Comentarios

  1. 3, pero es una 'leaky abstraction', deberia/podria actualizar solo 1 vez, y eventualmente hasta evitar el lock si hace lo equivalente al piensopiensoII..

    ResponderBorrar
  2. Anónimo:
    Tu respuesta es correcta.

    Por no haber dejado tu nombre y las ultimas 3 digitos de la cédula, la producción de este blog, no podrá darte el premio del concurso (dos noches de estadia en el camping "Barracuda" en La Floresta, de martes a jueves, en el mes de Agosto).

    Lo importante de este problema, es ver que como esta implementado actualmente (Genexus 9.0 U3) se bloquea todo el contenido de la tabla y se realizan tantos updates como registros tenga la misma.

    En PiensoPienso II, solamente se realiza un update y la tabla no se bloquea.

    Preparate para el PiensoPienso III!!.

    ResponderBorrar
  3. La forma mas correcta de realizarlo seria de la forma

    for each
    where id=20
    Descripcion='Veinte'
    endfor

    De esta forma haria un unico lock y update.

    ResponderBorrar

Publicar un comentario

1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.

Entradas más populares de este blog

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Aplicación monolítica o distribuida?

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.