首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@@DBTS和BInaryFormatter

@@DBTS和BInaryFormatter
EN

Stack Overflow用户
提问于 2012-01-03 20:30:26
回答 1查看 199关注 0票数 1

我已经编写了一个客户端,它使用SyncFramework来协调集线器和辐式体系结构仓库应用程序中数据的合并。当同步事务处理时,同步框架将更新一个指定的锚定表,其值为@@DBTS,指示最后一次同步是何时处理并上载到服务器的。作为这个场景的一部分,我想提供一种能力,允许一个客户端代表另一个客户端中继数据。

这将用于一个客户端可能无法与仓库进行联系的情况;它的数据库可以由访问仓库的客户端检索和同步(作为DVD或USB闪存媒体上的数据库备份交换)。

这个理论的问题是,当检索快照时,没有在客户端数据库上设置SentAnchor,下一次执行此过程时,整个数据库将在第二次复制。

我想要做的是,当我获取客户端数据库的快照时,更新它的SentAnchor,以便下次我获取副本时,同步框架将知道它的SentAnchor,就好像它实际上已经与服务器进行了通信一样。

因此,我的第一个冲动是简单地更新锚表,将SentAnchor设置为@@DBTS,但是同步框架的问题是以不同的格式插入相同的值,它首先通过BinaryFormatter运行。

因此,相同的内在价值、不同的头,以及当我尝试使用@@DBTS的值进行更新时,SyncFramework错误试图将其从它预期设置的格式中转换回来。

我想要做的是通过TSQL语句来设置,这是同步框架使用的@@DBTS的相同格式;如果可以在已经执行的语句中执行创建备份的语句,我不想编写一个应用程序来执行单个SQL语句。

就像..。

代码语言:javascript
复制
USE MyDB 
GO 
BACKUP DATABASE MyDb 
TO DISK = 'F:\01032012MyDb.bak'
    WITH FORMAT,    
    NAME = '20120103 Full Backup of MyDb' 
GO 
UPDATE Anchor SET SentAnchor = @@DBTS 
GO

实际上,将上面的@@DBTS替换为将相同的值从SyncFramework使用的正确值中获取所需的任何东西。

服务器是2008R2特快。

EN

回答 1

Stack Overflow用户

发布于 2012-01-06 06:02:10

设置SentAnchor的问题是,您可能实际上错过了上传更改。通过设置值,您已经有效地告诉Sync Framework,它已经发送到@@DBTS的值为止的更改。

我建议您探索使用SqlSyncProvider代替。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8718196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档