DataWindow鐨勬暟鎹紦鍐插尯
鍙戝竷: 2008-6-26 20:47 | 浣滆: admin | 鏌ョ湅: 11娆
DATAWINDOW鐨勫洓涓紦绔欏尯
鍦≒owerBuilder涓,DataWindow鏄敤鎴峰墠绔敤鏉ュ瓨鍌ㄣ佹搷绾垫暟鎹殑瀵硅薄銆傚湪姣忎竴涓狣ata Window瀵硅薄涓湁4涓簩缁磋〃浣滀负鏁版嵁缂撳啿鍖,鐢ㄦ潵瀛樺偍鏌ヨ鍒扮殑鏁版嵁銆傜敤鎴峰湪DataWindow涓鏁版嵁澶勭悊绯荤粺鍐呴儴鐨勬搷浣滃疄闄呬笂閮芥槸灏嗘暟鎹湪杩欏嚑涓紦鍐插尯涓繘琛岀殑淇敼鍜岀Щ鍔,鏈鍚庡湪鐢ㄦ埛鎻愪氦鏁版嵁搴撴椂,绯荤粺鏍规嵁杩欏洓涓紦鍐插尯涓殑淇℃伅褰㈡垚SQL鐨処N-SERT,UPDATE,DELETE绛夎鍙ャ傝繖鍥涗釜缂撳啿鍖烘槸:
Primary Buffer
杩欎釜缂撳啿鍖烘槸瀛樻斁濉厖绐楀彛涓璂ataWindow鎺т欢涓暟鎹殑,璋冪敤DataWindow鐨凴etrieve() 鍑芥暟鍜孖nsertRow()鍑芥暟鍙互灏嗘暟鎹~鍏ヨ繖涓紦鍐插尯涓傚綋浣跨敤鏈夊叧DataWindow鍒犻櫎鍜岃繃婊ゅ嚱鏁版椂,鐩稿簲璁板綍灏嗕粠杩欎竴缂撳啿鍖轰腑鍒犻櫎銆傝屽湪鎵цDataWindow鐨刄pdate()鍑芥暟鏃,PowerBuilder灏嗘煡鐪嬭繖涓缂撳啿鍖轰腑鐨勮褰,浠ュ舰鎴怱QL INSERT鍜孶PDATE璇彞銆
Delete Buffer
杩欎釜缂撳啿鍖轰繚瀛樼殑鏄敤DeleteRow()鍑芥暟浠嶱rimary Buffer涓垹闄ょ殑璁板綍,鎵цUpdate( )鍑芥暟鏃,绯荤粺鏍规嵁杩欎竴缂撳啿鍖虹殑璁板綍褰㈡垚DELETE璇彞銆
Filter Buffer
杩欎釜缂撳啿鍖哄瓨鍌ㄧ殑鏄粠Original Buffer浣跨敤Filter()鍑芥暟杩囨护鍒癙rimary Buffer涓悗鍓╀綑鐨勮褰曘
Original Buffer
杩欎竴缂撳啿鍖哄瓨鍌ㄧ殑鏄疍ataWindow鏈鍒濇墽琛宺etrieve()鍑芥暟鏃跺緱鍒扮殑鍏ㄩ儴璁板綍銆傚綋鎻愪氦鏁版嵁搴撴椂,鏍规嵁Primary Buffer鐢熸垚鐨刄PDATE璇彞鍜屾牴鎹瓺elete Buffer鐢熸垚鐨凞ELETE璇彞閮借渚濇嵁杩欎竴缂撳啿鍖烘潵鏋勯犺繖浜汼QL璇彞涓殑Where瀛愬彞銆
Original Buffer鐢盤owerBuilder鍐呴儴缁存姢,Power-Builder鎵鎻愪緵鐨勪换浣曞嚱鏁伴兘鏃犳硶鏀瑰彉瀹冪殑鍊,涓嶈繃閫氳繃PowerBuilder鎵鎻愪緵鐨凣etItem鈥︾郴鍒楃殑鍑芥暟鍙互璇诲嚭DataWindow鏈鍒濅粠鏁版嵁搴撲腑鏌ュ埌鐨勫師濮嬪笺傞氳繃杩欎簺鍑芥暟鎴戜滑鍙互缂栫▼瀹炵幇鎵璋撶殑"Undo"鍔熻兘,骞朵笖寰楀埌鍦ㄤ娇鐢ㄤ箰瑙傞攣鏃跺舰鎴愭彁浜ゆ暟鎹簱鐨刉HERE瀛愬彞銆
濡傛灉鎮ㄥ綋鍓嶄娇鐢ㄧ殑DataWindow娌℃湁璁剧疆淇敼鐨勬潈鍔,鎮ㄥ皢涓嶈兘瀵笵elete缂撳啿鍖哄拰Origin al缂撳啿杩涜鎿嶄綔,鑰屼笖褰撹皟鐢║pdate()鏃朵篃灏嗗紩璧风郴缁熼敊璇
鏁版嵁缂撳啿鍖虹殑鐘舵佸
Primary Buffer鍜孌elete Buffer閮芥湁琛岀骇鍜屽垪绾х殑鐘舵佸,杩欎釜鐘舵佸兼槸涓涓灇涓剧被鍨嬨傚湪鎻愪氦鏃剁敱璇ヨ鐨勭姸鎬佸兼潵鍐冲畾鏄惁瑕佷骇鐢烻QL璇彞,鍏朵腑Primary Buffer浜х敓鐨勬槸IN-SE RT鍜孶PDATE璇彞,鑰孌elete Buffer浜х敓鐨勬槸DELETE璇彞銆傛垜浠敤GetItem Status ()鍑芥暟鍜孲etItemStatus()鍑芥暟鍙互瀵硅繖涓鐘舵佸间綔鎿嶇旱銆傝繖涓鏋氫妇鐘舵佹湁浠ヤ笅鍥涚:
銉籒otModified!鈥曗曗曡琛屾垨琛岀殑鍊间负鏌ヨ鎵寰,娌℃湁鍙戠敓鏀瑰彉銆
銉籇ataModified!鈥曗曗曡琛屾垨鍒楃殑鍊间负鏌ヨ鎵寰,鍙戠敓浜嗘敼鍙樸
銉籒ew!鈥曗曗曡琛屾垨鍒椾负涓鎻掑叆鐨勬柊琛,鏁版嵁娌℃湁鍙戠敓鏀瑰彉(鏁版嵁涓虹┖鎴栫己鐪佸)銆
銉籒ewModified!鈥曗曗曡琛屾垨鍒椾负涓鎻掑叆鐨勬柊琛,鏁版嵁鍙戠敓鏀瑰彉
銆傛敼鍙樻槸閫氳繃鐢ㄦ埛閿洏杈撳叆鎴栬皟鐢ㄤ簡SetItem()鍑芥暟銆
璁╂垜浠潵鐪嬩笅闈㈣繖涓瀹炰緥:
鎴戜滑鏈夎繖鏍蜂竴寮犺〃,琛ㄤ腑鏈変笁涓瓧娈,鍏朵腑ITEM鏄富閿
ITEM CHAR(5);
NAME CHAR(20);
QUANTITY INT銆
鍦⊿cript涓垜浠煡璇㈣繖寮犺〃鐨勮褰,寰楀埌浠ヤ笅杩欎簺淇℃伅瀛樺偍浜嗗湪Primary鍜孫rigianalBu ffer涓,鍏朵腑鐨勮鍙锋槸缂撳啿鍖哄姞涓婄殑銆
鍦ㄧ獥鍙d腑,鎴戜滑缂栫▼杩囨护鎺夋暟閲忎负0鐨勮,骞朵笖鍔犱笂涓涓┖琛:
dw_1.SetFilter("quantity=0")
dw_1.Filter()
dw_1.InsertRow()
鐢ㄦ埛鍦ㄦ柊鎻掑叆琛屼腑杈撳叆鏁版嵁,鍒犻櫎浜嗙3琛屾暟鎹,骞朵慨鏀逛簡绗2琛屾暟鎹傚綋浠栫寮杩欎釜DataWindow鏃,Primary鍜孌elete缂撳啿鍖虹殑鐘舵
(浣犵煡閬撳悧锛)
杩欐椂鎵цdw_1.update()鍑芥暟,绯荤粺灏嗗熀浜庤繖涓や釜缂撳啿鍖虹敓鎴怱QL璇彞銆
鍦≒rimary Buffer涓,鐘舵佷负NotModified鍜孨ew!鐨勮灏嗚蹇界暐鑰屼笉浜х敓SQL璇彞銆傜姸鎬佷负DataModified鐨勮灏嗕骇鐢烾PDATE璇彞,鐘舵佷负NewModified鐨勮灏嗕骇鐢烮NSERT璇彞,鍦―ele te缂撳啿鍖轰腑鐨勮灏嗕骇鐢烡ELETE璇彞銆
鍥涗釜缂撳啿鍖哄湪缂栫▼涓殑杩愮敤
鏌愪簺DataWindow鎺т欢鐨勫嚱鏁版湁鎸囧畾DataWindow缂撳啿鍖虹殑鍔熻兘銆傚鏋滅己鐪,鍒欒〃绀篜rimar y缂撳啿鍖恒備笅鍒楁槸鍙互鎸囧畾缂撳啿鍖虹殑鍑芥暟:
銉籊etItemStatus()
銉籊etNextModified()
銉籊etUpdateStatus()
銉籗etItemStatus()
姝ゅ杩樻湁GetItem鈥︾郴鍒楃殑鍑芥暟,鐢ㄤ互鏌ヨDataWindow涓殑鍊笺傝繖浜涘嚱鏁版湁:
銉籊etItemDate()
銉籊etItemDataTime()
銉籊etItemDecimal()
銉籊etItemNumber()
銉籊etItemString()
銉籊etItemTime()
GetItem鈥︾郴鍒楀嚱鏁颁篃鍙互鎸囧畾缂撳啿鍖,鑰屼笖鍙互鍏佽鎮ㄦ寚瀹氭煡璇㈢殑鏄綋鍓嶅艰繕鏄師濮嬪(鏈鍒濅粠鏁版嵁搴撲腑鏌ュ埌鐨勫)銆傚:
dw_1.GetItemString(1,"name",Primary!,TRUE)
浣跨敤DataWindow鐨凴eset()鍑芥暟鍜孯etrieve()鍑芥暟浠ュ強鏀瑰彉DataObject灞炴ф椂,绯荤粺灏嗛噸缃繖鍑犱釜缂撳啿鍖恒
褰撶敤鎴锋彃鍏ヤ竴涓柊琛屾椂,缂栫▼鑰呭線寰瑕佽嚜鍔ㄥ湪鏂版彃鍏ヨ涓殑鏌愪簺鍒椾腑鎻掑叆涓浜涚己鐪佺殑鏁版嵁鍊笺傝繖鏃,鐢ㄦ埛骞舵病鏈夊鏁版嵁浣滀换浣曚慨鏀广傚彲鏄湪鐢ㄦ埛瑕佸叧闂繖涓绐楀彛鏃,濡傛灉鍦–loseQu ery浜嬩欢涓敤ModifiedCount()鍑芥暟鏌ョ湅鏁版嵁鏄惁淇敼,寰楀埌鐨勭粨鏋滄樉鐒舵槸鏈夋墍鏀瑰彉銆傜敤鎴峰皢寰楀埌涓涓彁绀轰俊鎭:"鏄惁鎵撶畻淇濆瓨鎵浣滅殑淇敼?鏄/鍚/鍙栨秷"鈥曗曗曡繖鏄剧劧鏄笉閫傚悎鐨:鑰屼笖濡傛灉鐢ㄦ埛閫夋嫨鐨勬槸淇濆瓨鏃,杩欎簺鍘熷簲鏄┖璁板綍鐨勮涔熸垚涓轰簡鏈夊唴瀹圭殑琛,绯荤粺灏嗗叾褰㈡垚SQL 鐨処NSERT璇彞鎻愪氦鏁版嵁搴,杩欐牱鐨勭粨鏋滄洿涓烘伓鍔c備负鏀瑰彉杩欎竴鐘跺喌,鎴戜滑鍙互鐢⊿etItemStatus()鍑芥暟灏嗚琛岀殑鐘舵佹敼涓篘ew!銆傚嵆褰撴湁鏂拌鎻掑叆骞朵笖璁剧疆浜嗙己鐪佸间箣鍚,璇ヨ鐨勭姸鎬佸间负New!銆備笅闈㈢殑绋嬪簭灏卞彲浠ュ緱鍒板涓婄殑鍔熻兘銆
鈭nsert a new row in dw_1
long 1_Row
1_Row=dw_1,InsertRow(dw_1,GetRow())
dw_1,SetItem(1_Row,"discount_pct",0,10)
鈭et th row status to New! so that the CloseQuery checkwill only detectus er entries.
dw_1.SetItemStatus(1_Row,0,Primary!,New!)
浣跨敤SetItemStatus鍑芥暟鏃舵湁涓浜涚姸鎬佽浆鎹㈢殑闄愬埗,涓嬭〃涓樉绀虹殑鏄皢鍘熸潵鐨勭姸鎬佹敼鍙樹负鍙︿竴鐘舵佹椂,浼氫骇鐢熺殑褰卞搷銆傝嫢琛ㄤ腑涓篘o,鍒欒鏄庣敤杩欎竴鍑芥暟杩涜杩欐牱鐨勮缃棤鏁;鑻ヨ〃涓粰鍑轰簡涓嶅悓鐨勭姸鎬,鍒欒鐘舵佹槸瀵规偍鎸囧畾鐨勭姸鎬佺殑鏇夸唬銆傚綋涓涓姸鎬佺殑鏀瑰彉涓嶈兘鍏佽鏃,鍙互澶氭璋冪敤SetItemStatus浠ュ緱鍒版湡鏈涚殑鐘舵併備緥濡, 浠嶯ew!鐘舵佷笉鑳芥敼鎴怤otModified!鐘舵,鍙皢鍏舵敼鎴怐ataModified!鐘舵,鐒跺悗鍐嶆敼鎴怤otMod ified!鐘舵併




发表于 2009-1-5 19:48
| 











