Escolar Documentos
Profissional Documentos
Cultura Documentos
En los procedimientos contamos con un comando llamado New, para insertar registros
en una tabla.
Utilizando este comando, podemos asignarle valores a los atributos de una tabla
fsica.
Hablamos de una tabla y no de una transaccin, porque no todos los atributos que
estn en la estructura de una transaccin, estn presentes en la tabla fsica.
Por ejemplo, si queremos insertar un vuelo, en la transaccin Flight hay muchos
atributos declarados en la estructura que no estn fsicamente en la tabla FLIGHT sino
que estan en la tabla extendida de la tabla FLIGHT. Los hemos includo en la
estructura para mostrarlos en el form o bien para usarlos en las reglas.
GeneXus determinar cul es la tabla fsica donde insertar el registro, analizando los
atributos que estn a la izquierda del signo de igual
Si pertenecen todos a una misma tabla fsica, se realizar la insercin del registro en
dicha tabla y si no, se nos informar que no es posible determinar la tabla en la cual
realizar la insercin.
La tabla que encuentra GeneXus se llama tabla base del New. En este caso es:
FLIGHT.
Vamos a ver ahora cmo podemos actualizar un valor existente en la base de datos.
Para cambiar un valor almacenado en un atributo, por otro valor, navegamos su tabla
base mediante un For each y mediante una asignacin, damos el nuevo valor.
En el web panel se conoce el valor de la variable &Percentage que digit el usuario, pero
no en el procedimiento.
Lo que haremos es enviarle el valor guardado en la variable, al momento de llamar al
procedimiento.
Para lograr esto, dentro del parntesis del call, incluimos a la variable &Percentage.
Ahora en el procedimiento, debemos recibirla. En el procedimiento y en la seccin rules
escribimos parm seguido de parntesis.
Dentro del parntesis tenemos que recibir a la variable, pero la variable aqu no est
definida. Podemos definirla con el mismo nombre que est definida en el web panel o con
otro nombre. Lo importante es que el tipo de datos sea idntico al tipo de datos de la
variable enviada desde el web panel al procedimiento.
Vemos que el tipo de datos de la variable &percentage en el web panel es: Numeric(3),
as que en el procedimiento, la definimos as.
Ahora en la seccin de rules del procedimiento, dentro del parntesis de la regla Parm,
incluimos a la variable que recibimos. Todas las reglas deben finalizar con punto y coma
en todo objeto, as que lo ponemos y salvamos.
Por ltimo en el source del procedimiento utilizamos la variable &Percentage en el clculo.
Presionamos F5.
Algo importante que hay que saber, es que los procedimientos no controlan que los
datos que asignamos sean consistentes.
Ya hemos visto cmo los procedimientos nos permiten insertar y actualizar registros en la
base de datos. Vamos a ver ahora cmo eliminar registros.
Para eliminar registros, contamos con el comando Delete que se usa dentro de un
comando For each.
Bsicamente hay que navegar la tabla en la cual queremos eliminar uno o varios registros,
e incluir dentro del For each el comando delete.
En el ejemplo vemos que estamos navegando la tabla Country, filtrando por el valor de
un determinado pas y por lo tanto eliminando puntualmente 1 registro, con el comando
Delete.
Pero tambin podramos haber eliminado a todos los pases ingresados en la tabla
Country.
Dado que no necesitbamos filtrar determinados registros, ni ordenar, ni imprimir, el For
each con la indicacin de la transaccin base elimina todos los pases, al ejecutarse
podra dejar atracciones tursticas almacenadas referenciando pases que han sido
borrados. Como la base de datos controlar la consistencia de los datos interrelacionados,
de encontrar atracciones que referencian a un pas que se est intentando eliminar,
rechazar la operacin y el programa cancelar su ejecucin.