Génération d'une base de données à l'aide de scripts en utilisant les paramètres et les sélections

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 :

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

Création de sélection et paramètre

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