Problem with IncludeTimestamp

Hi,

I am using the api with the datacompare to compare 2 databases. I am using the following code for the mapping options
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.

Comments

  • Brian DonahueBrian Donahue Posts: 6,590 Bronze 1
    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.
  • I am also having this problem using the following:
    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!
  • Brian DonahueBrian Donahue Posts: 6,590 Bronze 1
    Are you absolutely positive that the timestamp columns are the source of the differences?
  • Yes, I have double checked.
  • Brian DonahueBrian Donahue Posts: 6,590 Bronze 1
    ...Using same the EngineDataCompareOptions in all three places? (I believe mappings, session, and provider all need to use the same options).
  • That did the trick. I was not setting the options until after CreateMappings[/code]
Sign In or Register to comment.