SDO_DAS_Relational::applyChanges

(^)

SDO_DAS_Relational::applyChanges Aplicar los cambios hechos a un grafo de datos en la base de datos.

Descripción

SDO_DAS_Relational::applyChanges ( PDO $database_handle , SDODataObject $root_data_object ) : void
Advertencia

Esta función ha sido declarada EXPERIMENTAL. Su funcionamiento, nombre y la documentación que le acompaña puede cambiar sin previo aviso en futuras versiones de PHP. Utilícela bajo su propia responsabilidad.

Dado un gestor de bases de datos PDO y el objeto especial raíz de un grafo de datos, examina el resumen de cambios del grafo de datos y aplica los cambios a la base de datos. Los cambios que puede aplicar pueden ser creaciones de objetos de datos, eliminación de objetos de datos, y modificaciones de propiedades de objetos de datos.

Parámetros

PDO_database_handle

Construido usando la extensión PDO. Una línea típica para construir un gestor de bases de datos PDO podría parecerse a esta:

$dbh = new PDO("mysql:dbname=COMPANYDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

root_data_object

El objeto especial raíz que está en el nivel más alto del grafo de datos SDO.

Valores devueltos

Ninguno. Observe, sin embargo, que el grafo de datos que fue pasado aún está intacto y utilizable. Además, si los objetos de datos fueron creados y vueltos a escribir en una tabla con claves primarias autogeneradas, esas claves primarias serán ahora establecidas en los objetos de datos. Si los cambios fueron escritos con éxito, el resumen de cambios asiciado con el grafo de datos tendrá que ser limpiado, por lo que es posible ahora hacer más cambios al grafo de datos y aplicar esos cambios por turno. De esta manera es posible trabajar con el mismo grafo de datos y aplicar los cambios repetidamente.

Errores/Excepciones

SDO_DAS_Relational::applyChanges() puede lanzar una excepción SDO_DAS_Relational_Exception si no es capaz de aplicar todos los cambios correctamente.

El DAS Relacional inicia una transacción de base de datos antes de empezar a aplicar los cambios, y consignará la transacción solamente si todos tienen éxito. El DAS Relacional genera actualización cualificada y las sentencias delete que contienen una cláusula where que especifica que la fila que va a ser actualizada o eliminada debe contener los mismos valores que tenía cuando los datos fueron recuperados por primera vez. Así es como la concurrencia optimista está implementada. Si cualquiera de las sentencias de actualización o eliminación cualificadas falla al actualizar o al eliminar su fila objetivo, pueder ser a causa de que los datos han sido alterados en la base de datos en el transcurso. En cualquier evento, si cualquier actualización falla por cualquier razón, la transacción se retrotrae y se lanza una excepción. La excepción contendrá la sentencia SQL generada que falló.

El DAS Relacional también captura cualquier excepción de PDO y obtiene información de diagnóstico de PSO que se incluye en una SDO_DAS_Relational_Exception, la cual luego es lanzada.

Ejemplos

Por favor, véase la sección Ejemplos en la información general sobre los DAS Relacionales para más ejemplos de llamar a este método. Véase tambíen la sección sobre Rastreo para ver qué sentencias SQL son generadas por el DAS Relacional.