Guardar datos en la base de datos

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Bases de datos >

Guardar datos en la base de datos

Este apartado contiene:

 

Guardar en base al progreso de la solución
La acción "Guardar"
La acción "Ejecutar la BD"
Filtrar las columnas a guardar
Acerca de ConjuntoFilaOriginal
Enviar transacciones

 

 

Guardar en base al progreso de la solución

El menú contextual de un nodo raíz $DB presenta el comando Guardar datos (captura de pantalla siguiente) que activa la fuente de datos representados por el nodo raíz para que se actualicen en diferentes puntos durante el progreso de la solución. Las opciones se describen más adelante. Si se selecciona la opción por defecto "No automáticamente", entonces se guardan los datos sólo cuando se desencadena la acción "Guardar" de un evento.

 

El comando Guardar datos abre un submenú con opciones que se excluyen mutuamente (es decir, solamente se puede seleccionar una opción):

MTDSaveDataContextMenu

Cada vez que se abandona la página: los datos de la estructura se guardan cada vez que se sale de una página que contiene dicha estructura.
Cuando la solución finalice: los datos de la estructura se guardan cuando se sale de la solución, independientemente de cuándo y cómo se salga de la solución.
Con el último envío: los datos de la estructura se guardan cuando el flujo de trabajo avanza según lo diseñado, desde la primera hasta la última página y cuando se pulsa el botón Enviar. Si selecciona esta opción y se sale de la solución antes de que se pulse el botón Enviar, entonces no se guardarán los datos de la estructura.
No automáticamente: la estructura no se guardará automáticamente, sino cuando se usen las acciones Guardar, Guardar en archivo o Guardar en HTTP/FTP para guardar datos.

 

La opción predeterminada es No automáticamente.

 

 

La acción "Guardar"

Los datos se pueden guardar en la BD cuando se desencadena el evento de una página o el evento del control para el que se define la acción Guardar. Tal evento, podría ser por ejemplo, que el usuario final hiciera clic sobre el botón Enviar. En la captura de pantalla siguiente el botón "Enviar" se ubica en la barra de la tabla "Editar oficinas".

MTDDBCSimulatorEditOffices01Short

La acción "Guardar" se puede definir en la acción de la página o del "control". Puede acceder a los cuadros de diálogos correspondientes mediante el cuadro de diálogo "Todas las acciones" (Página | Vista general de las acciones). La captura de pantalla siguiente muestra un cuadro de diálogo "Acciones de la página" con la acción "Guardar" que se ha definido para el evento OnSubmitButtonClicked.

MTDDBCEditOfficesPageActions

Nota:Si la BD presenta una clave privada, se usará para guardar aquellos registros que han sido modificados, agregados o borrados. Si la BD no presenta una clave privada, la tabla entera modificada se guardará en la BD y reemplazará a la tabla original.

 

 

La acción "Ejecutar BD"

La acción Ejecutar (BD) supone un potente mecanismo a la hora de modificar datos de BD. Con esta acción podrá usar instrucciones SQL para actualizar y guardar datos. Consulte el apartado Diseño de páginas | Bases de datos | Acción Ejecutar (BD) para obtener más información.

 

Filtrar las columnas que se deben guardar

En el menú contextual de los nodos raíz $DB, seleccione el comando Filtrar columnas para abrir el cuadro de diálogo "Configuración para guardar columnas de la BD" (imagen siguiente) y seleccionar qué columnas se deben actualizar o insertar.

 

MTDSaveDBColumns

Este cuadro de diálogo muestra las columnas de la fuente de página de BD. Aquí puede especificar qué columnas se pueden actualizar y cuáles pueden tomar valores insertados. Cuando decimos "actualizar" nos referimos a aquellos datos modificados en elementos de fila que ya existen. Con "valores insertados" nos referimos a los datos de elementos de fila nuevos. La opción Insertar y Actualizar de las columnas están seleccionadas por defecto. Sin embargo, si quiere cambiar estas opciones, marque la casilla Configuración de filtrado distinta para instrucciones INSERT y UPDATE. Los atributos que tengan valores vacíos se pueden convertir en valores NULL en la BD. Para ello marque la casilla NULL de la columna correspondiente. Recuerde que los atributos que no contengan valores siempre se guardarán con el valor NULL.

 

En las columnas que no se puedan actualizar (porque sean columnas definidas por el usuario, columnas de valor fijo o columnas de valor calculado) se deshabilitarán las casillas Insertar, Actualizar y NULL. Por ejemplo, en la imagen anterior la columna id no se puede actualizar porque almacena valores fijos. Desactive las columnas que no quiere actualizar. Si quiere restaurar la configuración para que todas las columnas se puedan actualizar, haga clic en el botón Restaurar valores predeterminados.

 

Acerca de ConjuntoFilaOriginal

Para poder editar y guardar datos la estructura de la fuente de página debe incluir un elemento OriginalRowSet, que es una copia del elemento RowSet. Los datos originales se guardan en el elemento OriginalRowSet, mientras que los datos que se han editado se guardan en el elemento RowSet. Cuando se guarde la fuente de página, se calculará la diferencia que existe entre las dos estructuras (OriginalRowSet y RowSet) y la fuente de página se actualizará en función de esta diferencia. Si la modificación se realiza correctamente, los datos modificados se copian en OriginalRowSet para que OriginalRowSet contenga los datos de BD recién guardados y el proceso de modificación se puede repetir.

 

Para crear un OriginalRowSet para una fuente de página haga clic con el botón derecho en el nodo raíz de la fuente de página y active el comando Crear OriginalRowSet.

 

El comando Crear OriginalRowSet se habilita para nodos raíz de tipo BD ($DB). Se trata un comando de conmutación que crea/elimina una estructura de datos OriginalRowSet que contiene los datos originales de la fuente de página. Los datos modificados por el usuario se guardan en la estructura principal creada a partir de la fuente de página. Cuando los datos modificados se vuelvan a guardar en la BD, la estructura OriginalRowSet se modificará para que contenga los datos recién guardados en la BD. Hasta que los datos modificados se guarden en la BD, los datos de BD originales se conservan en la estructura OriginalRowSet. Esto garantiza que los datos de BD originales estén disponibles en la estructura.

 

 

Enviar transacciones

Otra forma de guardar datos en una BD es iniciar una transacción independiente y enviarla. Las transacciones de la BD se encuentran disponibles como acciones para la página y los eventos del control.

 

Información sobre transacciones de BD

Cada vez que una transacción necesita acceder a la BD, se crea automáticamente un acceso a la BD y después se cierra. A veces este comportamiento no es ideal, dependiendo de la configuración elegida. Por ejemplo, imagine que tiene dos fuentes de página de BD que quiere actualizar a la vez automáticamente. Si ambas tablas se guardan correctamente, entonces la transacción se confirma. De lo contrario se revierten los cambios. Para conseguir esta configuración será necesario crear las transacciones en función de la conexión.

 

Si comienza una transacción, todas las operaciones de BD que pertenezcan a la misma conexión de BD utilizarán esta transacción.

 

Al confirmarse una transacción, los cambios realizados se hacen visibles. Los cambios realizados se pueden revertir. En ese caso, aunque la acción Guardar se llevara a cabo en la fuente de la página, los cambios no se harán visibles si se revierten las modificaciones. Recuerde que, cuando se alcance el final del árbol de acciones, todas las transacciones que no estén cerradas (confirmadas o revertidas) se revertirán automáticamente. La ventana Mensajes muestra una advertencia a tal efecto cuando esto ocurre.

 

Es importante tener en cuenta que este comportamiento afecta a acciones de transacción explícitas, pero también a todas las operaciones de BD que utilicen la misma conexión que la transacción.

 

 


© 2019 Altova GmbH