我正在用會員表單創建圖書館管理應用程序。自動更新狀態列
會員類型有:
- 半年度
- 每年
- 贊助人(15分鐘)
- 終身會員
現在我在SQL Server中設計了一個表2008組成:
- 成員Id
- 名稱
- 加入日期
- 截止日期
- 狀態
狀態由要麼M
會員或E
過期籍。
現在我想讓這個任務自動發生。
例如,如果成員的到期日期是昨天,那麼它應該自動將狀態更改爲E
。
我該怎麼做?
我正在用會員表單創建圖書館管理應用程序。自動更新狀態列
會員類型有:
現在我在SQL Server中設計了一個表2008組成:
狀態由要麼M
會員或E
過期籍。
現在我想讓這個任務自動發生。
例如,如果成員的到期日期是昨天,那麼它應該自動將狀態更改爲E
。
我該怎麼做?
使用過期日期NULL
作爲您的生活會員會員。然後,create a SQL Server Agent job揭開序幕下面的語句和運行,每15分鐘(或5):
UPDATE
Membership
SET
Status = 'E'
WHERE
Status = 'M' AND ExpirationDate < getdate()
AND ExpirationDate IS NOT NULL
你可以create a SQL Job和schedule它每天晚上運行,以更新狀態標誌。這是一個overview讓你開始吧。
評論:我不確定您是否將您的數據庫視爲具有此要求的獨立數據源。它看起來更像是更新此狀態標誌的商業案例。如果稍後更新過期日期,會發生什麼情況?您還必須更新狀態標誌。您可能希望您的應用程序解釋過期日期。
感謝, -Tom
感謝您的回覆。 其實我沒有安裝Sql server代理。 你能告訴我SQL SERVER AGENT可以作爲FreeWare的鏈接嗎? 請幫我一把! – sheetal 2009-07-08 04:55:48
如何使用計算列?
在表設計器內部選擇您的狀態列,轉到列屬性並選擇節點「計算列指定」。在此輸入公式:
CASE WHEN ExpirationDate IS NOT NULL AND ExpirationDate < GETDATE() THEN 'E' ELSE 'M' END
對此的唯一負面影響是,它無法被索引。
如果您正在將記錄加載到對象中,爲什麼不使用對象的屬性來向您顯示「member」/「expired」?
這種自動操作並不適合持久性數據存儲。如果您真的需要,可以使用Greco建議的計算列,但正確地指出這可能會演變爲性能問題。
不需要額外的感嘆號。人們正在閱讀這些問題,希望能幫助你:) – Jared 2009-07-08 04:12:34
你能否更新你的問題標題以避免模棱兩可? – Jared 2009-07-08 04:15:00