Update, Insert but not Delete
ryolatl@hotmail.com
Posts: 4
I compare two database.
DB Source and DB Target,
what I'm doing is Insert or Update the records that from the DB Source to the DB Target but at some point the DB Source is going to be deleted.
With the Code that I have now If I do this, all the DB Target is deleted as well and I don't want this.
What I need is to be able to Insert, Update but not Delete, Could you point me in the right direction?
thanks
this is the code that I'm using for the Execution.
Dim provider As New SqlProvider
Dim block As ExecutionBlock
Try
block = provider.GetMigrationSQL(session, True)
provider.Options.SqlOptions.
txtResults.Text += "The synchronization SQL contains " & block.LineCount & " lines in " & block.BatchCount & " batches"
txtResults.Text += "The SQL to be run is:"
txtResults.Text += block.GetString()
Dim needStream As Boolean = True
If needStream Then
Using stream As Stream = block.GetFileStream
'we can access the SQL in a memory efficient manner by accessing the underlying stream
End Using
End If
Dim executeSql As Boolean = True
If executeSql Then
txtResults.Text += "Updating target database"
Dim executor As New BlockExecutor()
executor.ExecuteBlock(block, "10.202.1.111", "Sync_target", False, "user", "pass")
Else
txtResults.Text += "Skipping: Updating target database"
End If
Finally
block = provider.Block
If (TypeOf block Is ExecutionBlock) Then
block.Dispose()
End If
session.Dispose()
db1.Dispose()
db2.Dispose()
End Try
DB Source and DB Target,
what I'm doing is Insert or Update the records that from the DB Source to the DB Target but at some point the DB Source is going to be deleted.
With the Code that I have now If I do this, all the DB Target is deleted as well and I don't want this.
What I need is to be able to Insert, Update but not Delete, Could you point me in the right direction?
thanks
this is the code that I'm using for the Execution.
Dim provider As New SqlProvider
Dim block As ExecutionBlock
Try
block = provider.GetMigrationSQL(session, True)
provider.Options.SqlOptions.
txtResults.Text += "The synchronization SQL contains " & block.LineCount & " lines in " & block.BatchCount & " batches"
txtResults.Text += "The SQL to be run is:"
txtResults.Text += block.GetString()
Dim needStream As Boolean = True
If needStream Then
Using stream As Stream = block.GetFileStream
'we can access the SQL in a memory efficient manner by accessing the underlying stream
End Using
End If
Dim executeSql As Boolean = True
If executeSql Then
txtResults.Text += "Updating target database"
Dim executor As New BlockExecutor()
executor.ExecuteBlock(block, "10.202.1.111", "Sync_target", False, "user", "pass")
Else
txtResults.Text += "Skipping: Updating target database"
End If
Finally
block = provider.Block
If (TypeOf block Is ExecutionBlock) Then
block.Dispose()
End If
session.Dispose()
db1.Dispose()
db2.Dispose()
End Try
Comments
I think I would probably use a selection delegate with GetMigration()
e.g.
With a method to loop through the results store and deselect all the deletes, e.g.
I hope this helps point you in the right direction.