Para editar los datos versionados de un cliente de SQL, debe editar una vista versionada de los datos, no la tabla base (comercial) en sí. Las tablas versionadas utilizan dos tablas asociadas, las tablas de adiciones y borrados (conocidas colectivamente como tablas delta), para registrar los cambios. Al editar una vista versionada de la tabla, las ediciones se escriben en las tablas de adiciones y borrados. Editar la tabla base directamente evade esto y puede llevar a registros huérfanos y datos perdidos.
Cuando ejecuta declaraciones de manipulación de datos de SQL contra una vista versionada, lo siguiente se lleva a cabo en la base de datos para cada tipo de declaración:*
- Insertar: se agrega una fila a la tabla de adiciones de la tabla base subyacente y se genera automáticamente un valor de ID de objeto para la nueva fila.
- Actualizar: Actualizar elimina la fila original y agrega una nueva que contiene la nueva información. Por lo tanto, se agrega una fila a las tablas de adiciones y borrados de la tabla base subyacente cuando ejecuta una declaración de actualización.
- Eliminar: se agrega una fila a la tabla delta de la tabla base subyacente.
*Si editar la versión Predeterminada apunta al estado 0, todas las ediciones se mueven inmediatamente a la tabla base.
Tenga en cuenta que no se realiza ninguna conciliación de versiones| interna para las ediciones realizadas a través de SQL. Por lo tanto, debe conciliar sus ediciones con una versión principal a través de ArcGIS for Desktop o de una secuencia de comandos de Python cuando haya terminado de editar.
Opciones de edición
Puede crear una nueva versión de la geodatabase con nombre y editarla o puede editar la versión Predeterminada directamente. Lo que realice depende de los requisitos en su sitio. Es importante elegir el modelo apropiado, ya sea editar una versión con nombre o editar la versión Predeterminada, para asegurar el rendimiento y escalabilidad óptimos.
Editar una versión con nombre
Creará y utilizará versiones con nombre para editar con SQL a través de las vistas versionadas si cualquiera de los siguientes es verdadero en su sitio:
- Múltiples editores deben cambiar los mismos datos.
- Requiere un proceso de control de calidad bien definido.
- Los cambios no tienen que estar disponibles inmediatamente para otros usuarios; en lugar de eso, se pueden mantener separados hasta que los concilie y los publique.
- Las clases de entidad versionadas que se van a editar usan un tipo de almacenamiento de geometría binario.
- La clase de entidad versionada o la tabla que desea editar está registrada como versionada con la opción para mover las ediciones a la base.
Cuando edita a través de una vista versionada, las ediciones se registran en las tablas de adiciones y borrados. Las ediciones se escriben en el estado actual al que la versión con nombre hace referencia.
Los pasos que lleva a cabo para editar los datos en una versión con nombre son los siguientes y se deberían realizar en este orden:
- Cree una vista versionada en una tabla o clase de entidad versionada si aún no existe una.
- Cree una versión de geodatabase en la que puede hacer sus ediciones.
- Utilice el procedimiento set_current_version para especificar que desea obtener acceso a su nueva versión. Hacer esto establece la sesión de edición en el estado al que la versión con nombre indica y bloquea la versión.
- Inicie una sesión de edición ejecutando el procedimiento o la función edit_version adecuados para la base de datos.
- Realice las ediciones en la vista versionada utilizando SQL.
- Guarde las ediciones en la base de datos o déjelas sin efecto.
- Detenga la sesión de edición ejecutando el procedimiento o la función edit_version adecuados para su base de datos.
- Concilie y publique las modificaciones por medio de ArcGIS.
- Cuando se envían todos los cambios a una versión principal con ArcGIS, puede eliminar la versión que creó para las ediciones en la vista versionada.
Editar la versión Predeterminada
Puede editar la versión Predeterminada con SQL a través de las vistas versionadas si una o más de las siguientes afirmaciones son verdaderas en su sitio:
- Las ediciones que hará son breves transacciones.
- Su sitio requiere que las ediciones hechas a través de una vista versionadas estén disponibles para otros usuarios inmediatamente.
- Si edita clases de entidad, las clases de entidad utilizan tipos espaciales de SQL, no almacenamiento de geometría binario.
- La clase de entidad o tabla que desea editar no está registrada como versionada con la opción para mover las ediciones a la base.
Cuando edita la versión Predeterminada, las ediciones se registran en las tablas delta en el momento que edita una versión con nombre. Sin embargo, cuando edita la versión Predeterminada, cualquiera que vea la versión Predeterminada podrá ver las ediciones.
Si la versión Predeterminada hace referencia al estado 0, cada edición se aplica directamente a la tabla base de la tabla versionada o de la clase de entidad. Cuando la versión Predeterminada se edita con un cliente de ArcGIS, se actualiza para hacer referencia a un nuevo estado de base de datos después de guardarla. Cuando una vista versionada edita la versión Predeterminada directamente, cada operación de inserción, actualización y eliminación se escribe en el estado actual al que la versión Predeterminada hace referencia.
Por ejemplo, si la versión Predeterminada se actualiza con un cliente ArcGIS a la vez que se realizan varios cambios mediante la vista versionada, es posible que los cambios realizados mediante la vista versionada se puedan aplicar a varios estados.
Una vez sus ediciones están confirmadas, inmediatamente están accesibles para lo siguiente:
- Usuarios o aplicaciones que están trabajando con la tabla versionada y la versión Predeterminada
- Usuarios o aplicaciones que están trabajando con una versión secundaria que tiene un linaje de estado que contiene el estado actual de la versión Predeterminada
No debe establecer la versión ni iniciar una sesión de edición si desea editar datos en la versión de la geodatabase Predeterminada a través de una vista versionada. Los pasos que lleva a cabo son los siguientes:
- Cree una vista versionada en una tabla o clase de entidad versionada si aún no existe una.
- Realice las ediciones en la vista versionada utilizando SQL. Automáticamente estará editando el estado actual de la versión Predeterminada.
- Guarde las ediciones en la base de datos o déjelas sin efecto. Es mejor confirmar o regresar después de cada edición debido a que, mientras su transacción está abierta, los bloqueos exclusivos se retienen en las tablas delta. Los bloqueos no se liberan hasta que la transacción termina.