Forum und email

SDO_DAS_Relational::applyChanges

(No version information available, might be only in CVS)

SDO_DAS_Relational::applyChanges — Applique les changements effectués au graphique de données à la base de données.

Description

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

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

En donnant descripteur de base de données PDO et l'objet racine spécial d'un graphique de données, la fonction examine les changements dans le graphique de données et applique les changements à la base de données Les changements qui peut appliquer sont les créations d'objets de données, les suppressions des objets de données et les modifications des propriétés des objets de données.

Liste de paramètres

PDO_database_handle

Construit en utilisant l'extension PDO. Une ligne typique pour construire un descripteur de base de données PDO devrait ressembler à ceci :

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

root_data_object

L'objet racine spécial qui est le sommet de chaque graphique de données SDO.

Valeurs de retour

Aucun. Notez cependant que le graphique de données qui a été passé est toujours intact et utilisable. De plus, si les objets de données ont été créés et écrits à une table avec des clés primaires générées automatiquement, alors ces clés primaires seront maintenant enregistrées dans les objets de données. Si les changements ont été correctement écrits, alors le changement associé avec le graphique de données sera supprimé, alors il est possible maintenant d'effectuer plus de changement au graphique de données et appliquer les changements alternativement. De cette façon, il est possible de travailler avec le même graphique de données et appliquer les changement à plusieurs reprises.

Erreurs / Exceptions

SDO_DAS_Relational::applyChanges() peut jeter une exception SDO_DAS_Relational_Exception si la méthode n'est pas capable d'appliquer tous les changements correctement.

Le DAS Relationnel démarre une transaction de base de données avant de commencer à appliquer les changements et enverra les transactions seulement si celles-ci sont réussies. Le DAS Relationnel génère des requêtes de mises à jour et de suppression qualifiées qui contiennent une clause WHERE qui spécifie que la ligne à être modifiée ou supprimée doit contenir les mêmes valeurs qu'elles avaient lorsque les données ont été préalablement récupérées. Voici comment la simultanéité optimiste est implantée. Si une des requêtes de mises à jour ou de suppression qualifiées échoue à mettre à jour ou à supprimer leur ligne, il se peut que cela soit à cause des données altérées dans la base de données en attendant. Quoi qu'il arrive, si une mise à jour échoue pour n'importe quelle raison, la transaction est retournée en arrière et une exception est jetée. Cette exception contiendra la requête SQL générée qui a échouée.

Le DAS Relationnel attrape aussi toutes les exceptions de PDO et obtient des informations de diagnostique de PDO qui incluent dans un SDO_DAS_Relational_Exception qui est lui-même ensuite jeté.

Exemples

Veuillez voir la section d'exemples dans les informations générales à propos de DAS Relationnel pour plusieurs exemples sur l'appel de cette méthode. Veuillez voir aussi la section sur le suivi pour voir comment vous pouvez voir quelles requêtes SQL sont générées par le DAS Relationnel.