2009-12-20 30 views
2

我有一個安全應用程序,它的數據存儲在訪問database.now我需要 做一個實時同步(複製)之間的訪問數據庫和SQL Server 2005中的新數據庫。這兩個數據庫是一樣的。 有什麼建議?訪問和SQL服務器實時同步


我不知道如何使用Windows服務來做到這一點。我需要確切的技術答案。

+0

你見過:http://sqlserverpedia.com/blog/sql-server-tutorial/how-can-i-synchronize-data-between-ms-access-and-sql-server-databases/? – Fionnuala 2009-12-20 11:00:39

+0

@Remou:如果你把這個鏈接放在一個答案中並且繪製出來,我會認爲這是最好的答案(關鍵是使用SQL Server鏈接服務器來使Jet/ACE數據可見到SQL Server,您可以在其中運行一組附加/刪除/更新來同步Jet/ACE與SQL Server表)。 – 2009-12-22 01:04:10

+0

謝謝Remou.i檢查URL.it是真正有用和practical.i做到了.above方法不是真正的time.is有一種方法來訪問數據庫和SQL Server 2005之間使用ACCESS LINKED TABLES數據庫同步?我知道這是可能的,我做了它。我用一些具有相同名稱的鏈接表替換了訪問數據庫中的原始表。所以當應用程序對訪問數據庫進行查詢時,它實際上會看到我們的後端sql server 2005 database.it只有一個缺點。我們只有一個放置在sql server 2005中的數據副本。我需要副本訪問數據庫中的數據。 – muhremehr 2009-12-24 05:21:24

回答

2

大多數情況下,我會建議您使用Windows服務來定期檢查MS Access數據庫,並嘗試將其與Sql數據庫同步。

這將允許您刪除人爲因素,並定期運行此任務以同步dbs。

看一看

而且

+0

是的,Windows服務是一個好主意,但在做Windows服務之前,我需要知道如何將新添加的行提取到表中並將它們發送到SQL Server數據庫。 – muhremehr 2009-12-20 09:56:12

+0

我準備一個小小的c#應用程序。問題是如何僅將新添加的行從訪問數據庫傳輸到SQL Server數據庫。 (最好是我被告知不使用自定義編碼的應用程序。) – muhremehr 2009-12-23 05:03:33

2

SQL服務器built-in replication functionality您得到免費的,所以您不必擔心複製行&跟蹤更改。有幾種類型的SQL複製用於不同情況,如合併複製,快照複製和事務複製。最後一個,事務複製聽起來像你想要的。當您的用戶可能斷開連接,離開並稍後返回進行同步(如遠程用戶)時,將使用Merge replicationTransactional replication用於訂閱者和發佈者可靠連接的情況。每次發生同步時,Snapshot replication都會生成新的快照,並且不會考慮對數據所做的更改。閱讀MSDN文檔,找出哪些類型適合您的情況。

使用這些複製方法將要求您在SQL服務器或快速實例中設置您的表 - 您可以使用它來與SQL服務器同步,並將其他所有Access作爲前端。我認爲你想遵循一個觀衆的建議,並使用Windows服務來觸發同步。但是,您可以將Windows同步管理器設置爲自動嘗試在啓動,關機,計算機閒置時等進行同步。如果您需要更好地控制觸發同步,那麼建議使用Windows應用程序或服務作爲旁觀者。

+0

我認爲sql服務器複製只是在sql server和rdbms之間,比如它自己或者mysql和其他人,而不是sql server和access之間。 – muhremehr 2009-12-21 14:52:54

+0

SQL Server 2000可以使用Jet 4執行異構複製,但該功能在SQL Server 2005中已被刪除。 – 2009-12-22 01:02:38

+0

我所建議的是將Sql服務器複製到本地Sql服務器或快速實例,並使用Access – 2009-12-22 02:00:56