Génération d'une base de données (Scripting)

Vous pouvez générer un MPD sous la forme d'un script SQL ou directement dans la base via une connexion directe en utilisant la méthode GenerateDatabase(). Vous pouvez générer des données de test à l'aide de la méthode GenerateTestData().

Le fragment de script suivant ouvre un MPD, puis appelle des procédures pour générer différents scripts :
Dim GenDir, MonModele 
    GenDir = "C:\temp\" 
    Set MonModele=OpenModel(EvaluateNamedPath("%_EXEMPLES%\" & "gestsoc.mpd"))
    
    GenerateDatabaseScripts MonModele 'Génère un script SQL pour créer la base de données
    ModifyModel MonModele 'Modifie chaque table dans le modèle 
    GenerateAlterScripts MonModele - Génère des scripts alter pour modifier la base de données
    GenerateTestDataScript MonModele - Génère des données de test à charger dans la base de données 
Cette procédure génère un script SQL pour créer la base de données :
Sub GenerateDatabaseScripts(m)
   Dim opts
   Set opts = m.GetPackageOptions()
   InteractiveMode = im_Batch ' Evite l'affichage de la fenêtre de génération 
   opts.GenerateODBC = False ' Force la génération de script SQL plutôt qu'ODBC 
   opts.GenerationPathName = GenDir
   opts.GenerationScriptName = "MonScript.sql"
   m.GenerateDatabase ' Lance la fonctionnalité de génération de base de données 
End Sub
Pour générer via une connexion directe à une base de données, vous vous connectez à la base de données (en utilisant la méthode ConnectToDatabase()) puis définissez la propriété GenerateODBC à true.
Remarque : Pour plus d'informations sur les options de génération, sélectionnez Aide > Aide sur les objets du métamodèle, puis naviguez vers Libraries/PdPDM/BasePhysicalPackageOptions.
Cette procédure modifie le modèle en ajoutant une nouvelle colonne à chaque table :
Sub ModifyModel(m)
 dim pTable, pCol
 For each pTable in m.Tables
  Set pCol = pTable.Columns.CreateNew()
  pCol.SetNameAndCode "az" & pTable.Name, "AZ" & pTable.Code
  pCol.Mandatory = False
 Next
End Sub
Cette procédure génère un script alter pour modifier la base de données :
Sub GenerateAlterScripts(m)
 Dim pOpts
 Set pOpts = m.GetPackageOptions()
 InteractiveMode = im_Batch ' Evite l'affichage de la fenêtre de génération
' Définit les options de génération en utilisant les options de modèle
 pOpts.GenerateODBC = False ' Force la génération via script sql plutôt que via ODBC
 pOpts.GenerationPathName = GenDir
 pOpts.DatabaseSynchronizationChoice = 0 'Force un fichier apm existant comme source
 pOpts.DatabaseSynchronizationArchive = GenDir & "modele.apm"
 pOpts.GenerationScriptName = "MonScriptAlter.sql"
 m.ModifyDatabase ' Lance la fonctionnalité de modification de base de données
End Sub
Cette procédure génère des données de test à charger dans la base :
Sub GenerateTestDataScript(m)
 Dim pOpts 
 Set pOpts = m.GetPackageOptions()
 InteractiveMode = im_Batch ' Evite l'affichage de la fenêtre de génération
' Définit les options de génération en utilisant les options de modèle
 pOpts.TestDataGenerationByODBC = False ' Force la génération de script sql plutôt qu'ODBC
 pOpts.TestDataGenerationDeleteOldData = False
pOpts.TestDataGenerationPathName = GenDir
 pOpts.TestDataGenerationScriptName = "MesDonneesTest.sql"
m.GenerateTestData ' Lance la fonctionnalité de génération de données de teste
End Sub