Fonction Habilitation ListerClesEtrangeres(NomProprietaire : Nul Ou Caractere=Nul, NomCatalogue : Nul Ou Caractere=Nul, NomSchema : Nul Ou Caractere=Nul, NomTable : Nul Ou Caractere=Nul, TTR : Entier=1, ModeOptimisation : ModeOptimisationFlux=Asynchrone4096) Retourner Nul Ou IResultatRequete;
Si le nom du propriétaire est précisé dans le paramète NomProprietaire, alors seules les tables de ce propriétaire sont remontées.
La fin du nom du propriétaire peut être le caractère joker *. En ce cas, toutes les tables des propriétaires dont le nom correspond au modèle sont examinés.
Si le nom du catalogue est précisé dans le paramète NomCatalogue, alors seules les tables de ce catalogue sont remontées.
La fin du nom du catalogue peut être le caractère joker *. En ce cas, tous les catalogues dont le nom correspond au modèle sont examinés.
Si le nom du schéma est précisé dans le paramète NomSchema, alors seules les tables de ce schéma sont remontées.
La fin du nom du schéma peut être le caractère joker *. En ce cas, tous les schémas dont le nom correspond au modèle sont examinés.
Si le nom de la table est précisé dans le paramète NomTable, alors les tables ci-dénommées sont remontées.
La fin du nom de la table peut être le caractère joker *. En ce cas, toutes les tables dont le nom correspond au modèle sont examinées.
Si le paramètre TTR spécifiant la taille des tableaux pour les résultats a pour valeur 1, alors les enregistrements sont produits rang après rang.
Sinon les enregistrements sont produits par tableau dont la taille est donnée par TTR.
La gestion des tableaux est automatisée pour rendre le principe d'Array Fetch Processing transparent.
Après avoir exécuté la requête sur le dictionnaire de la base de données, Up ! Virtual Technical Machine rècupère tous les enregistrements produits et les conserve dans un espace de mémoire virtuelle dont la taille de l'anté-mémoire est définie par la valeur du paramètre ModeOptimisation. Pour plus de précisions, merci de se référer à la fiche ModeOptimisationFlux.
Cette méthode a deux avantages :
Le format d'un enregistrement résultat est le suivant :
Nom du champ | Type du champ | Description du champ |
NomContrainte | Caractere | Nom de la contrainte. |
NomProprietairePrimaire | Caractere | Nom du propriétaire père. |
NomCataloguePrimaire | Caractere | Nom du catalogue père. |
NomSchemaPrimaire | Caractere | Nom du schéma père. |
NomTablePrimaire | Caractere | Nom de la table mère. |
NomColonnePrimaire | Caractere | Nom de la colonne mère. |
NomProprietaireEtrangere | Caractere | Nom du propriétaire fils. |
NomCatalogueEtrangere | Caractere | Nom du catalogue fils. |
NomSchemaEtrangere | Caractere | Nom du schéma fils. |
NomTableEtrangere | Caractere | Nom de la table fille. |
NomColonneEtrangere | Caractere | Nom de la colonne fille. |
NumeroColonneEtrangere | Entier | Numéro de la colonne fille. |
Si la méthode échoue, alors l'exception ErreurOrdreSql est envoyée.
Si la méthode n'est pas supportée, alors le résultat est Nul.
Principal
/*******/
Variable
/******/
MaConnexion : Nul Ou IConnexionSql;
MonResultatSql : Nul Ou IResultatRequete;
Enregistrement : Nul Ou EnregistrementSql;
NomContrainte : Nul Ou Caractere;
NomProprietairePrimaire : Nul Ou Caractere;
NomCataloguePrimaire : Nul Ou Caractere;
NomSchemaPrimaire : Nul Ou Caractere;
NomTablePrimaire : Nul Ou Caractere;
NomColonnePrimaire : Nul Ou Caractere;
NomProprietaireEtrangere : Nul Ou Caractere;
NomCatalogueEtrangere : Nul Ou Caractere;
NomSchemaEtrangere : Nul Ou Caractere;
NomTableEtrangere : Nul Ou Caractere;
NomColonneEtrangere : Nul Ou Caractere;
NumeroColonneEtrangere : Nul Ou Entier;
Debut
...
Si MaConnexionSql.ListerClesEtrangeresSupporte Alors
MonResultatSql=MaConnexionSql.ListerClesEtrangeres();
Pour Enregistrement=MonResultatSql.ParcoursAuDebut() JusquA MonResultatSql.DernierElement() Faire
Enregistrement.LireResultat("NomContrainte", NomContrainte);
Enregistrement.LireResultat("NomProprietairePrimaire", NomProprietairePrimaire);
Enregistrement.LireResultat("NomCataloguePrimaire", NomCataloguePrimaire);
Enregistrement.LireResultat("NomSchemaPrimaire", NomSchemaPrimaire);
Enregistrement.LireResultat("NomTablePrimaire", NomTablePrimaire);
Enregistrement.LireResultat("NomColonnePrimaire", NomColonnePrimaire);
Enregistrement.LireResultat("NomProprietaireEtrangere", NomProprietaireEtrangere);
Enregistrement.LireResultat("NomCatalogueEtrangere", NomCatalogueEtrangere);
Enregistrement.LireResultat("NomSchemaEtrangere", NomSchemaEtrangere);
Enregistrement.LireResultat("NomTableEtrangere", NomTableEtrangere);
Enregistrement.LireResultat("NomColonneEtrangere", NomColonneEtrangere);
Enregistrement.LireResultat("NumeroColonneEtrangere", NumeroColonneEtrangere);
...
Fin Pour
...
Fin Principal
ListerClesEtrangeresSupporte pour connaître si le listage des clés étrangères est supporté.
- | - | - | - | - | - | - | - | - |