StrataFrame Forum

One more DDT question...

http://forum.strataframe.net/Topic9708.aspx

By Robin J Giltner - 6/21/2007

I've basically copied the code from the DDT installer sample shipped with Strataframe to deploy my own pkg file. It seems to work fine up untill it starts deploying the data to the server.  I get an error in the TurnOffAllForeignKeys method.   While looking through this, the database parameter is set to the database name is the name of the database NameinProfile, not the NameOnServer.  All 3 databases getting deployed have a DatabaseTargetName specified.

'-- Create the DatabaseMigrator instance

If _SQLUserName.Length = 0 Then

_DatabaseSetup = New DatabaseMigrator(_SQLServer, True, Me)

Else

_DatabaseSetup = New DatabaseMigrator(_SQLServer, False, Me, _SQLUserName, _SQLPassword)

End If

'-- Create the DatabaseTargetName for Database1

Dim loDTN_Database1 As New DatabaseTargetName("Database1")

loDTN_Database1.NameOnServer = "Database1"

'-- Create the DatabaseTargetName for Database2

Dim loDTN_Database2 As New DatabaseTargetName("Database2")

loDTN_Database2.NameOnServer = "Database2_Renamed"

'-- Create the DatabaseTargetName for Database3

Dim loDTN_Database3 As New DatabaseTargetName("Database3")

loDTN_Database3.NameOnServer = "Database3"

'-- Create array to hold the DatabaseTargetName objects

Dim laDTNames(2) As DatabaseTargetName

laDTNames(0) = loDTN_Database1

laDTNames(1) = loDTN_Database2

laDTNames(2) = loDTN_Database3

'-- Begin the deployment of the databases

_DatabaseSetup.DeployMetaData(_Package, "mypassword", laDTNames)

It generates a Null Reference exception.  Stack Trace  :Microfour.StratFrame.DBEngine.SQL.DatabaseMigrator.TurnoffAllForeignKeys(String Databasename)

Am I doing something wrong here ?

Thanks,

Robin Giltner

By StrataFrame Team - 6/22/2007

I don't see where you're calling _DatabaseSetup.DeployData()... that method call should be the one that calls the TurnoffAllForeignKeys(), and as long as you pass that same laDTNames to it as well, it should work fine.
By Robin J Giltner - 6/22/2007

Doh, thanks Ben.  I wasn't passing the DatabaseTargetNames array when I called the DeployData Function

Me._DatabaseSetup.DeployData(_Package, "password", laPKs.ToArray())

so I changed that to

Me._DatabaseSetup.DeployData(_Package, "password", laPKs.ToArray(), Me._DTNames)

Thanks Ben.

Robin Giltner