Exemples avec une table
Les exemples suivants utilisent tous le DAS Relationnel pour travailler avec un graphique de données contenant juste un objet de données d'application, une seule compagnie et les données qui seront dans la table compagnie. Ces exemples ne montre pas le pouvoir de SDO ou de DAS Relationnel et bien sûr les mêmes résultats peuvent être atteints plus économiquement à l'aide de requêtes SQL directes mais ces exemples sont pour vous montrer comment fonctionne le DAS Relationnel.
Pour ce simple scénario, il serait possible de simplifier les métadonnées de base de données pour inclure juste la table de compagnie - si cela était fait, le deuxième et troisième argument du constructeur et le spécificateur de colonne utilisé dans l'exemple de requête deviendrait optionnel.
Exemple #1 Création d'un objet de données
<?php require_once 'SDO/DAS/Relational.php'; require_once 'company_metadata.inc.php'; /************************************************************** * Construit le DAS avec les métadonnées ***************************************************************/ $das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata); /************************************************************** * Obtient l'objet racine et crée un objet compagnie dessous. * Effectue un petit changement à l'objet de données. ***************************************************************/ $root = $das -> createRootDataObject(); $acme = $root -> createDataObject('compagnie'); $acme->name = "Acme"; /************************************************************** * Récupère la connexion à la base de données et écrit l'objet à la base de données ***************************************************************/ $dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD); $das -> applyChanges($dbh, $root); ?>
Exemple #2 Récupération d'un objet de données
<?php require_once 'SDO/DAS/Relational.php'; require_once 'company_metadata.inc.php'; /************************************************************** * Construit le DAS avec les métadonnées ***************************************************************/ $das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata); /************************************************************** * Récupère la connexion à la base de données ***************************************************************/ $dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD); /************************************************************** * Effectue une requête pour obtenir un objet compagnie - possiblement * plusieurs s'ils existent ***************************************************************/ $root = $das->executeQuery($dbh, 'select nom, id from compagnie where nom="Acme"', array('compagnie.nom', 'compagnie.id') ); /************************************************************** * Affiche le nom et le id ***************************************************************/ foreach ($root['compagnie'] as $compagnie) { echo "La compagnie obtenue de la base de données a le nom = " . $compagnie['nom'] . " et un id " . $compagnie['id'] . "\n"; } ?>
Exemple #3 Mise à jour d'objet de données
<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';
/**************************************************************
* Construit le DAS avec les métadonnées
***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);
/**************************************************************
* Récupère la connexion à la base de données
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
/**************************************************************
* Effectue une requête pour obtenir un objet compagnie - possiblement
* plusieurs s'ils existent
***************************************************************/
$root = $das->executeQuery($dbh,
'select nom, id from compagnie where nom="Acme" or nom="emcA"',
array('compagnie.nom', 'compagnie.id') );
/**************************************************************
* Modifie le nom de la première compagnie seulement
***************************************************************/
$compagnie = $root['compagnie'][0];
echo "Compagnie obtenue avec le nom " . $compagnie->nom . "\n";
$compagnie->nom = strrev($compagnie->nom);
/**************************************************************
* Écriture du changement
***************************************************************/
$das->applyChanges($dbh,$root);
?>
Exemple #4 Suppression d'un objet de données
<?php require_once 'SDO/DAS/Relational.php'; require_once 'company_metadata.inc.php'; /************************************************************** * Construit le DAS avec les métadonnées ***************************************************************/ $das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata); /************************************************************** * Récupère la connexion à la base de données ***************************************************************/ $dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD); /************************************************************** * Effectue une requête pour obtenir un objet compagnie - possiblement * plusieurs s'ils existent ***************************************************************/ $root = $das->executeQuery($dbh, 'select nom, id from compagnie where nom="Acme" or nom="emcA"', array('company.name', 'company.id') ); /************************************************************** * Supprime les compagnies trouvées du graphique de données ***************************************************************/ unset($root['compagnie']); /************************************************************** * Écrit le(s) changement(s) ***************************************************************/ $das->applyChanges($dbh,$root); ?>