Lorsque vous devez générer une base de données en utilisant un script, vous pouvez utiliser les méthodes suivantes :
Dans l'exemple ci-après, vous accomplissez les tâches suivantes :
Dans l'exemple ci-après, nous commençons par ouvrir un modèle existant (ASA 9) en utilisant la méthode suivante: OpenModel (filename As String, flags As Long =omf_Default) As BaseObject.
N'oubliez pas d'inclure la barre oblique inverse (\) finale dans le répertoire de destination.
Nous allons générer un script de base de données pour le modèle, modifier le modèle, générer un script de données modifié et générer un jeu de données de test en utilisant respectivement les méthodes suivantes :
Exemple :
Option Explicit Const GenDir = "D:\temp\test\" Const Modelfile = "D:\temp\phys.pdm" Dim fso : Set fso = CreateObject("Scripting.FileSystemObject") Start Sub Start() dim pModel : Set pModel = OpenModel(Modelfile) If (pModel is Nothing) then Output "Unable to open the model" Exit Sub End if End Sub
Vous générez ensuite un script pour ce modèle dans le dossier défini dans la constante "GenDir" en utilisant la méthode suivante : GenerateDatabase(ByVal ObjectSelection As BaseObject = Nothing).
Tout comme vous le feriez dans une boîte de dialogue de génération, vous devez définir un répertoire de génération ainsi que le nom du fichier sql avant de lancer la génération, comme dans l'exemple suivant.
Exemple :
Sub GenerateDatabaseScripts(pModel) 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 ' Define generation directory pOpts.GenerationScriptName = "script.sql" ' Define sql file name pModel.GenerateDatabase ' Launch the Generate Database feature End Sub
Ensuite, vous modifiez le modèle en ajoutant une colonne à chaque table :
Exemple :
Sub ModifyModel(pModel) dim pTable, pCol ' Add a new column in each table For each pTable in pModel.Tables Set pCol = pTable.Columns.CreateNew() pCol.SetNameAndCode "az" & pTable.Name, "AZ" & pTable.Code pCol.Mandatory = False Next End Sub
Avant de générer le script de base de données modifiée, vous devez obtenir les options de package et changer les paramètres de génération, puis vous générez le script de base de données en conséquence.
Pour plus d'informations sur les options de génération, voir BasePhysicalPackageOptions dans le fichier d'aide sur les objets du métamodèle.
Exemple :
Sub GenerateAlterScripts(pModel) 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.DatabaseSynchronizationChoice = 0 'force already saved apm as source pOpts.DatabaseSynchronizationArchive = GenDir & "model.apm" pOpts.GenerationScriptName = "alter.sql" pModel.ModifyDatabase ' Launch the Modify Database feature End Sub
Pour finir, vous générez un jeu de données de test :
Exemple :
Sub GenerateTestDataScript(pModel) 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 = "Test.sql" pModel.GenerateTestData ' Launch the Generate Test Data feature End Sub