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")