Vous pouvez utiliser les paramètres et sélections dans le cadre du scripting avant de lancer la génération de base de données en utilisant les méthodes suivantes dans le modèle : UseSettings(ByVal Function As Long, ByVal Name As String = "") As Boolean et UseSelection(ByVal Function As Long, ByVal Name As String = "") As Boolean.
En utilisant le MPD d'exemple (Gestsoc.MPD) fourni dans le répertoire d'installation PowerAMC, et qui contient deux sélections :
L'exemple suivant vous montre comment effectuer les tâches suivantes :
Générer un premier script de ce modèle pour la sélection "Organisation".
Générer un script de création de données de test pour les tables contenues dans cette sélection.
Générer un second script de ce modèle pour la sélection "Matériels" ainsi qu'un script de création de données de test pour les tables qu'il contient en utilisant le second jeu de paramètres (setting2).
Exemple :
' Generated sql scripts will be created in 'GenDir' directory ' there names is the name of the used selection with extension ".sql" for DDL scripts ' and extension "_td.sql" for DML scripts (for test data generations). Option Explicit Const GenDir = "D:\temp\test\" Const setting1 = "Tables & Views (with permissions)" Const setting2 = "Triggers & Procedures (with permissions)" Start EvaluateNamedPath("%_EXEMPLES%\gestsoc.mpd") Sub Start(sModelPath) on error resume next dim pModel : Set pModel = OpenModel(sModelPath) If (pModel is Nothing) then Output "Unable to open model " & sModelPath Exit Sub End if GenerateDatabaseScripts pModel, "Organisation" setting1 GenerateTestDataScript pModel, "Organisation" setting1 GenerateDatabaseScripts pModel, "Matériels" setting2 GenerateTestDataScript pModel, "Matériels" setting2 pModel.Close on error goto 0 End Sub Sub GenerateDatabaseScripts(pModel, sSelectionName, sSettingName) Dim pOpts : Set pOpts = pModel.GetPackageOptions() InteractiveMode = im_Batch ' Avoid displaying generate window ' set generation options using model package options pOpts.GenerateODBC = False ' Force sql script generation rather than ODBC pOpts.GenerationPathName = GenDir pOpts.GenerationScriptName = sSelectionName & ".sql" ' Launch the Generate Database feature with selected objects pModel.UseSelection fct_DatabaseGeneration, sSelectionName pModel.UseSetting fct_DatabaseGeneration, sSettingName pModel.GenerateDatabase End Sub Sub GenerateTestDataScript(pModel, sSelectionName) Dim pOpts : Set pOpts = pModel.GetPackageOptions() InteractiveMode = im_Batch ' Avoid displaying generate window ' set generation options using model package options pOpts.TestDataGenerationByODBC = False ' Force sql script generation rather than ODBC pOpts.TestDataGenerationDeleteOldData = False pOpts.TestDataGenerationPathName = GenDir pOpts.TestDataGenerationScriptName = sSelectionName & "_td.sql" ' Launch the Generate Test Data feature for selected objects pModel.UseSelection fct_TestDataGeneration, sSelectionName pModel.GenerateTestData End Sub
Vous pouvez créer une sélection persistante qui peut être utilisée dans la boîte de dialogue de génération en transformant une sélection en sélection persistante.
Exemple :
Option Explicit Dim pActiveModel Set pActiveModel = ActiveModel Dim Selection, PrstSel Set Selection = pActiveModel.createselection Selection.AddActiveSelectionObjects Set PrstSel = Selection.CreatePersistentSelectionManager("test")