Reverse engineering d'une base de données à l'aide de scripts

Vous procédez au reverse engineering à l'aide de scripts en utilisant la méthode ReverseDatabase(ByVal Diagram As BaseObject = Nothing).

Dans l'exemple suivant, la base de données ODBC est récupérée dans un nouveau MPD.

Les premières lignes du script définissent les constantes utilisées :

Exemple :

option explicit

' To use a user or system datasource, define constant with "ODBC:<datasourcename>"
' -> Const cnxDSN = "ODBC:ASA 9.0 sample"
' To use a datasource file, define constant with the full path to the DSN file
' -> Const cnxDSN = "\\romeo\public\DATABASES\_filedsn\sybase_asa9_sample.dsn"

' use ODBC datasource
Const cnxDSN = "ODBC:ASA 9.0 sample"
Const cnxUSR = "dba"
Const cnxPWD = "sql"
Const GenDir = "C:\temp\"
Const filename = "D:\temp\phys.pdm"

' Call to main function with the newly created PDM
' This sample use an ASA9 database
Start CreateModel(PdPDM.cls_Model, "|DBMS=Sybase AS Anywhere 9")

Sub Start(pModel)

   If (pModel is Nothing) then
      output "Unable to create a physical model for selected DBMS"
      Exit Sub
   End If

   InteractiveMode = im_Batch

' Reverse database phase
' First connect to the database with connection parameters
   pModel.ConnectToDatabase cnxDSN, cnxUSR, cnxPWD
' Get the reverse option of the model
   Dim pOpt
   Set pOpt = pModel.GetPackageOptions()

' Force ODBC Reverse of all listed objects
   pOpt.ReversedScript = False
   pOpt.ReverseAllTables = true
   pOpt.ReverseAllViews = true
   pOpt.ReverseAllStorage = true
   pOpt.ReverseAllTablespace = true
   pOpt.ReverseAllDomain = true
   pOpt.ReverseAllUser = true
   pOpt.ReverseAllProcedures = true
   pOpt.ReverseAllTriggers = true
   pOpt.ReverseAllSystemTables = true
   pOpt.ReverseAllSynonyms = true
' Go !
   pModel.ReverseDatabase
   pModel.save(filename)
' close model at the end
   pModel.Close false
End Sub