Editar datos versionados en Informix con vistas multiversionadas y SQL

Puede editar datos versionados en una geodatabase mediante la edición de vistas multiversionadas creadas sobre los datos.

Existen muchas funciones instaladas con ArcSDE que lo ayudan a trabajar con vistas multiversionadas. Estas funciones y sus descripciones son las siguientes:

Función

Propósito

Sintaxis y descripción

sde.create_version

Crear una nueva versión de la geodatabase.

Siempre edite su propia versión aparte; varios editores no pueden editar la misma versión con vistas multiversionadas.

EXECUTE FUNCTION sde.create_version ('<parent_version>', '<child_version>', <name_rule>, <access>, '<description>'

<parent_version> es la versión desde la cual se crea su versión.

<child_version> es el nombre para la versión que crea.

<name_rule> indica si el nombre especificado para la versión debería haber sido tomado como dado (2) o debería haberse creado un nombre único cuando se especificó un nombre duplicado (1).

<access> es el nivel de permiso para la versión, 0 para Privado, 1 para Público o 2 para Protegido.

<description> es una descripción de texto de una versión secundaria.

sde.set_current_version

Establece a qué versión de geodatabase accederá.

EXECUTE FUNCTION sde.set_current_version('<version_name>')

<version_name> es la versión de la geodatabase

sde.edit_version

Inicie y finalice una sesión de edición.

EXECUTE FUNCTION sde.edit_version('<version_name>',1)

Especifique 1 para iniciar la sesión de edición. Especifique 2 para finalizarla.

sde.delete_version

Elimine una versión de la geodatabase.

EXECUTE FUNCTION sde.delete_version('<version_name>')

Cuando edita tablas versionadas a través de vistas multiversionadas, los cambios se hacen a las tablas delta y los valores de la fila Id. (Id. de objeto) para los registros nuevos se generan automáticamente. Sin embargo, a diferencia de la edición de datos versionados en una sesión de edición en ArcGIS, no se realiza la conciliación de versión interna con estas modificaciones.

Además, se ubica un bloqueo exclusivo en el estado al que hace referencia la versión cuando inicia una sesión de edición en una vista multiversionada. Por consiguiente, se recomienda especialmente que no se utilicen las vistas multiversionadas para editar la versión DEFAULT o cualquier versión que pueda estar sujeta a ediciones simultáneas o a conciliación por parte de otros usuarios debido a que no se detectarán los conflictos y se bloqueará a los otros usuarios. Por el contrario, cree su propia versión específicamente para la sesión de edición con vista multiversionada.

PrecauciónPrecaución:
  • Las operaciones de administración de versiones, como la conciliación, la resolución de conflictos y la publicación, deben realizarse con el software de ArcGIS. La administración inadecuada de versiones puede dañar las geodatabases cuando se trabaje con vistas.
  • Nunca utilice herramientas de un sistema de administración de bases de datos (DBMS) para actualizar algún campo de Id. de fila (Id. de objeto) que ArcSDE mantenga en la base de datos. Estos campos de Id. de objeto se ubican en las geodatabases, son administrados por estas y, por lo tanto, no deben alterarse con SQL.
  • Nunca edite la versión DEFAULT de la geodatabase con SQL. Al iniciar una sesión de edición en una versión se obtiene un bloqueo exclusivo en el estado al que la versión hace referencia. Si bloquea la versión DEFAULT, no permite que los usuarios de ArcGIS se conecten a la geodatabase.

Los siguientes pasos lo guían para crear una vista multiversionada, para crear una versión en la cual realizar modificaciones, establecer la versión para editar, comenzar una nueva edición, realizar algunas modificaciones a través de la vista multiversionada, detener la sesión de edición, asignar las modificaciones a la base de datos y eliminar la versión creada para las modificaciones. En los ejemplos, la vista multiversionada creada para realizar las modificaciones sobre la tabla es code_mv, y la versión creada y usada para las modificaciones es mvedits.

Pasos:
  1. At an MS-DOS (Windows) or shell (UNIX or Linux) command prompt, execute the sdetable utility to create a multiversioned view.
    sdetable –o  create_mv_view –T code_mv 
    –t code_enf –i sde:informix –D code –u sarja –p not4U
  2. Cree una nueva versión para realizar las modificaciones.
    EXECUTE FUNCTION sde.create_version ('sde.DEFAULT', 'mvedits', 1, 1, 'multiversioned view edit version')
  3. Establezca la versión para la sesión de edición como la versión secundaria recién creada.
    EXECUTE FUNCTION set_current_version('mvedits')
  4. Inicie una sesión de edición mediante la ejecución de la función edit_version y especifique 1. El número 1 indica que se debe iniciar una sesión de edición.
    EXECUTE FUNCTION sde.edit_version('mvedits',1)
  5. Lleve a cabo la primera modificación en la vista multiversionada con SQL.

    En este ejemplo se actualiza un registro existente.

    UPDATE code_mv  SET propowner = 'C. Industry'  WHERE vid = 2233

  6. Lleve a cabo la siguiente modificación en la vista multiversionada con SQL.

    En este ejemplo se inserta un nuevo registro.

    INSERT INTO code_mv  (codenum,propowner,shape)  VALUES  (567, 'Anjo Badsu', ST_PointFromText('point (40 40))', 12)
  7. Ejecute un estamento COMMIT o ROLLBACK.
  8. Detenga la sesión de edición mediante la ejecución de la función edit_version, pero esta vez especifique 2.

    El número 2 indica que se debe cerrar la sesión de edición.

    EXECUTE FUNCTION sde.edit_version('mvedits',2)

  9. Cuando finaliza todas las modificaciones, concílielas y publíquelas por medio de ArcGIS Desktop, y después elimine la versión de geodatabase que creó en el paso 2. Si decide que no quiere conservar los cambios, puede eliminar la versión que creó en el paso 2 sin conciliar y publicar las modificaciones.
    EXECUTE FUNCTION sde.delete_version('mvedits')

Temas relacionados


7/11/2012