2015年10月6日 星期二

Delphi的Post和ApplyUpdate

參加DELPHI XE10的發表會後,就一直在忙公司的工作,沒時間上來寫文章。這期間看到了許多Delphi同好在其他論壇討論XE10的APP問題,看樣子XE10這次在APP的支援上,還是有不少狀況。
最近碰上了一位新進的DELPHI同好,他說他老是無法把資料存起來,幫忙Debug才發現是他Post和ApplyUpdate沒有弄懂。所以上來說明一下這二者的區分。
一般Post是把資料存到我們的記憶體,表示我們的資料更改完成,但是並沒有存回後端真正的資料庫,等到我們下ApplyUpdate時才把資料存回後端的資料庫。那為什麼要分這二個動作呢?
因為在修改資料時,不一定只改一筆Record,例如修改明細資料時,通常我們會修改很多筆才一起存回後端,那修改一筆時,如果要檢查資料,這時就需要在Post檢查資料是否正確了,所以Post是檢查一筆資料的好時機。
那Applyupdate存回資料庫是很多筆資料的異動,這時就適合做整體的檢查,例如明細資料的金額是不是和上方的總金額相同等。如果沒有例外,就真的更新資料庫了。
剛入門的Delphi人員常會覺得這二個指令很麻煩,是不是可以合在一起。可是用久了,就會知道這種方式對實務解決問題有很大的幫助。
在此提供新進人員做參考。