在Web中處理自增值功能(後端資料庫的identify功能),是與Windows的方式是一樣的,這裏再簡單說明一下。這裏的設置方法雖然是為了處理自增值的問題,但對於其他類似應用也是有效的,比如使用AutoNumber也很類似。
q Server端設定
打開S002,選中ucMaster。在UpdateComp元件中有以下幾個屬性需要說明一下。
[ServerModify]屬性:與WebDataSource的AutoApply屬性以及WebDataSet
的ServerModify屬性須同時為True時,可以在User新增資料並存檔後,將該筆資料在Server端被更改的部分也傳回Client端(例如:在Server端進行自動編號),在此是為了傳回最新的資料給Client。
[ServerModifyColumns]屬性:一般有自增值欄位的資料表中,自增值一定
是為PrimaryKey,為了在Master檔存檔後能夠找到剛新增的一筆資料,我們需要有相對唯一的參考欄位來查詢。此屬性就是用於設定相對唯一的欄位組合。在Orders資料表中,OrderDate,CusotmerID的組合就相對唯一。
[ServerModifyGetMax]屬性:抓最大值。除了參考欄位,還有另外一種方式就是抓取當前資料表中的最大值,這種方式為優先方式,即只有此屬性的值為False時,才會使用參考欄位方式。此方式的缺點是萬一有數十個User高速輸入時,Insert完立即取出的最大值不一定等於是此User輸入的,此問題發生機率將視User同時輸入的人數來決定之。(此碰撞機率其實還是很低)。
Step1>這裏我們使用參考欄位的方式,如上所說,將ucMaster的『ServerModifyColumns』屬性設定為【OrderDate】,【CustomerID】。
圖
Step2>如果原dll的設置與上面的設置不同,請在修改後重新Build S002。如果此時S002不能Build,出現如下錯誤提示,請將EEPNetServer關閉,重新Build。
q
Client端設定
Step1>點中W004,右鍵選中「View Component Designer」,進入WebDataSet設計畫面。確定WMaster的『ServerModify』屬性應設為【True】,以使資料存檔成功後能將Server端的資料回傳到Client來。
圖
Step2>回到W004設計介面,將Master的『AutoApply』設定為【True】。意為自動存檔,就是當User按下【OK】按鈕時,即會將Master還有相對該筆的所有Detail資料一次存檔到後端資料庫中(透過Server端的UpdateComp元件)。
圖
到此,包括Server端Client端在內,已有3個地方需要設置為True。
Step3>分別為將Server端Master的UpdateComp的『ServerModify』,WebDataSet的『ServerModify』,以及WebDataSource的『AutoApply』。只有當3者全部都設置為【True】時,才能實現及時將Server的資料回傳到Client。
Step4>在W004上右鍵選擇「Build Page」,並在InfoLogin.aspx右鍵「View
in Browser」。點選W004,新增一筆Master,輸入完Master之後,按下Navigator上的Save按鈕,即可得到最新的號碼,並往下輸入Detail明細資料,如下:
圖
Related Topics