Problem with IncludeTimestamp

Automate and integrate using the SQL comparison API

Moderator: Chris Auckland

Problem with IncludeTimestamp

Postby hmadyson » Thu Oct 07, 2010 8:39 pm

Hi,

I am using the api with the datacompare to compare 2 databases. I am using the following code for the mapping options

Code: Select all
private EngineDataCompareOptions _options = new EngineDataCompareOptions(
                                                MappingOptions.IgnoreSpaces | MappingOptions.IncludeIdentities | MappingOptions.IgnoreCase,
                                                ComparisonOptions.Default,
                                                SqlOptions.Default );


I have timestamps on every table, so I want to ignore those timestamps.

Unfortunately I cannot find the right mix. These options get me to have no Sames in any of the tables.

When the compare creates a script, it excludes all of the changes that are due to timestamp, but I can't get the number counts right.

What am I doing wrong?

Thanks.
hmadyson
 
Posts: 1
Joined: Thu Oct 07, 2010 8:36 pm

Postby Brian Donahue » Mon Oct 11, 2010 2:11 pm

Hello,

There is an option to ignore timestamps in an "atomic" way, so that you do not have trawl through all of the column mappings looking for timestamp columns.

All that you should need to do is unset MappingOptions.IncludeTimestamps in the first argument to EngineDataCompareOptions (if it is set you can use an XOR operator, for instance in C# MappingOptions.Default ^ MappingOptions.IncludeTimestamps)

In the data compare engine, timestamps can only be compared and the synchronization will ignore them anyway. For this reason, the setting should only affect any display of the data diferences, but not the actual script.
Brian Donahue
 
Posts: 6670
Joined: Mon Aug 23, 2004 10:48 am

same error this doesn't fix

Postby jimmypooh » Tue Oct 12, 2010 3:00 pm

I am also having this problem using the following:
Code: Select all
private EngineDataCompareOptions _options = new EngineDataCompareOptions(MappingOptions.Default ^ MappingOptions.IncludeTimestamps,ComparisonOptions.None,
                                                SqlOptions.DisableKeys | SqlOptions.DisableTriggers | SqlOptions.DropConstraintsAndIndexes | SqlOptions.OutputComments);

The timestamps still do not allow anything to be compared as the same.

Thanks!
jimmypooh
 
Posts: 8
Joined: Tue Oct 12, 2010 2:17 pm

Postby Brian Donahue » Tue Oct 12, 2010 3:58 pm

Are you absolutely positive that the timestamp columns are the source of the differences?
Brian Donahue
 
Posts: 6670
Joined: Mon Aug 23, 2004 10:48 am

Postby jimmypooh » Tue Oct 12, 2010 5:45 pm

Yes, I have double checked.
jimmypooh
 
Posts: 8
Joined: Tue Oct 12, 2010 2:17 pm

Postby Brian Donahue » Tue Oct 12, 2010 6:13 pm

...Using same the EngineDataCompareOptions in all three places? (I believe mappings, session, and provider all need to use the same options).
Brian Donahue
 
Posts: 6670
Joined: Mon Aug 23, 2004 10:48 am

Postby jimmypooh » Tue Oct 12, 2010 7:21 pm

That did the trick. I was not setting the options until after CreateMappings[/code]
jimmypooh
 
Posts: 8
Joined: Tue Oct 12, 2010 2:17 pm


Return to SQL Comparison SDK Previous Versions

Who is online

Users browsing this forum: No registered users and 1 guest