用C 寫乙個簡單的資料同步Windows服務(二)

2021-08-20 17:23:48 字數 2459 閱讀 1460

本文主要介紹已經寫好的資料同步windows服務的部署說明。

至少包括*.exe可執行檔案、

*.exe.config

配置檔案、

install.bat

安裝指令碼、

uninstall.bat

解除安裝指令碼四個檔案。

配置檔案的配置項說明:

2. log項為日誌檔案的存放路徑(絕對路徑,下同),如配置的資料夾不存在,服務啟動時將嘗試自動建立目錄。日誌檔案按天自動建立,名稱為年月日格式,如「

2018_06_13.log

」。3. fromdatabase項為源資料庫即中間庫的連線引數。本專案中為

sql server 2005

資料庫,則其連線引數可為以下三種方式之一:

1) 整合的windows身份驗證模式

server=[ip].[instance];database=[database];integrated security=sspi

2) windows身份驗證模式

server=[ip].[instance];database=[database];uid=[uid];pwd=[pwd]

3) sql server身份驗證模式

data source=[ip].[instance];initial catalog=[catalog];user id=[user id];pwd=[pwd]

以上連線引數中,ip即目標伺服器的

ip位址,

instance

為資料庫例項名,

database

、catalog

為資料庫名,

uid、

user id

為登入的使用者名稱,

pwd為密碼。

4. todatabase項為目標資料庫的連線引數。本例中連線的為

sde的表空間,則只須將

data source

、user id

、password

項替換為實際的

sde連線引數即可。

5. fromtable項為源資料庫的表名。

6. totables項為目標資料庫的表名(即要素類

featureclass

名稱),

多個不同的表名之間以英文半形逗號隔開。

7. interval為同步的時間間隔,即每隔多久執行一次資料同步服務(單位為秒)。如未配置或配置有誤,則預設按照每

3秒同步一次處理。

服務的執行流程即同步過程如下:

1. 服務啟動,執行一次同步服務,根據引數連線源資料庫和目標資料庫。

2. 同步時,先查詢源資料庫(中間庫)指定表中的未同步資料,取得其規劃地塊編號、徵地總成本、造地總成本、售地總成本字段。

3. 如規劃地塊編號不為空,則遍歷目標資料庫的目標表,查詢是否有相同編號的地塊。如存在,則寫入徵地、造地、售地總成本字段。

4. 所有源資料庫的未同步資料同步完成後,將其標記為已同步狀態。

5. 關閉源資料庫、目標資料庫連線,結束同步。

1. 修改服務安裝與解除安裝檔案,將其指向實際的*.exe檔案路徑(不能包含中文)。

2. 以管理員身份執行安裝指令碼install.bat檔案,服務將自動執行註冊,註冊完成後自動啟動。

3. 服務正常執行時,可在windows服務管理器中看到該服務項(名稱:

4. 不需要該服務時,可以管理員身份執行解除安裝指令碼uninstall.bat檔案執行服務解除安裝。

5. 修改任何配置項時,均須重啟服務以使配置生效。

同步過程將儲存到日誌檔案中,可通過日誌檔案檢視每次同步的資料條數。

c 用乙個執行緒同步的簡單例子

1 using system 2using system.collections.generic 3using system.componentmodel 4using system.data 5using system.drawing 6using system.linq 7using syste...

win32 寫乙個檔案 (同步阻塞寫的方式)

com en us library windows desktop bb540534 v vs.85 aspx建立乙個新檔案,並且同步寫乙個字串到檔案中去。建立乙個vs2010 控制台 程式 writefile.cpp 定義控制台應用程式的入口點。include stdafx.h include i...

用python寫乙個簡單的視窗

import sys if name main 建立乙個視窗 w qwidget 設定視窗的尺寸 w.resize 400,200 移動視窗 w.move 300,300 設定視窗的標題 w.setwindowtitle 第乙個基於pyqt5的桌面應用 顯示視窗 w.show 進入程式的主迴圈 並通...