第2章EEP2015WEB表單基礎設計(上)第2章EEP2015WEB表單基礎設計(上)\2-4自增值處理

2-4自增值處理

 

 

Web中處理自增值功能(後端資料庫的identify能),是Windows的方式是一樣的,這裏再簡單說明一下。這裏的設置方法雖然是為了處理自增值的問題,但對於其他類似應用也是有效的,比如使用AutoNumber也很類似。

 

q  Server端設定

打開S002,選中ucMaster。在UpdateComp元件中有以下幾個屬性需要說明一下。

 

Œ [ServerModify]屬性:與WebDataSourceAutoApply屬性以及WebDataSet

ServerModify屬性須同時為True時,可以在User新增資料並存檔後,將該筆資料在Server端被更改的部分也傳回Client端(例如:在Server端進行自動編號),在此是為了傳回最新的資料給Client

 

 [ServerModifyColumns]屬性:一般有自增值欄位的資料表中,自增值一定  

是為PrimaryKey,為了在Master檔存檔後能夠找到剛新增的一筆資料,我們需要有相對唯一的參考欄位來查詢。此屬性就是用於設定相對唯一的欄位組合。Orders資料表中,OrderDateCusotmerID的組合就相對唯一。

 

Ž [ServerModifyGetMax]屬性:抓最大值。除了參考欄位,還有另外一種方式就是抓取當前資料表中的最大值,這種方式為優先方式,即只有此屬性的值為False時,才會使用參考欄位方式。此方式的缺點是萬一有數十個User高速輸入時,Insert完立即取出的最大值不一定等於是此User輸入的,此問題發生機率將視User同時輸入的人數來決定之。(此碰撞機率其實還是很低)

 

Step1這裏我們使用參考欄位的方式,如上所說,將ucMaster的『ServerModifyColumns』屬性設定為【OrderDate】,【CustomerID】。

2-4-1 增加欄位

 

Step2如果原dll的設置與上面的設置不同,請在修改後重新Build S002。如果此時S002不能Build,出現如下錯誤提示,請將EEPNetServer關閉,重新Build

 

 

 

q   Client端設定

 

Step1點中W004,右鍵選中「View Component Designer」,進入WebDataSet設計畫面。確定WMaster的『ServerModify』屬性應設為【True】,以使資料存檔成功後能將Server端的資料回傳到Client來。


2-4-4 開啟ServerModify

 

Step2回到W004設計介面,將Master的『AutoApply』設定為【True】。意為自動存檔,就是當User按下【OK】按鈕時,即會將Master還有相對該筆的所有Detail資料一次存檔到後端資料庫中(透過Server端的UpdateComp元件)。


2-4-5 開啟AutoApply

 

到此,包括ServerClient端在內,已有3個地方需要設置為True

Step3分別為將ServerMasterUpdateComp的『ServerModify』,WebDataSet的『ServerModify』,以及WebDataSource的『AutoApply』。只有當3者全部都設置為【True】時,才能實現及時將Server的資料回傳到Client

 

Step4W004上右鍵選擇「Build Page」,並在InfoLogin.aspx右鍵「View in Browser」。點選W004,新增一筆Master,輸入完Master之後,按下Navigator上的Save按鈕,即可得到最新的號碼,並往下輸入Detail明細資料,如下:

 

2-4-6 自增值功能

 


 

Top of Page