為了使動(dòng)態(tài)創(chuàng)建的數(shù)據(jù)窗口可以被更新,需要在使用dw_control.update()之后進(jìn)行幾個(gè)相關(guān)的設(shè)置:
首先需要設(shè)置可以更新的列:
dw_control.Object.<columnname>.update
或
dw_control.Modify("<ColumnName>.Update=Yes")
這個(gè)操作與在Update屬性對(duì)話框中的"Updateeable Columns"列表框中選擇哪些更可以被更新相類似。在這里,我們假設(shè)所有可以被更新的更都是同一張表中的字段,對(duì)于要更新的每一個(gè)列都應(yīng)該使用上面的語(yǔ)句。
下一步,應(yīng)該設(shè)置更新是采用的主鍵:
dw_control.Object.<ColumnName>.key = "yes"
這個(gè)操作與在Update屬性對(duì)話框中的"Unique Key Columns"列表框中選擇哪些更可以被更新相類似。
然后,需要設(shè)置WHERE子句的更新方式:
dw_1.Object.DataWindow.Table.UpdateWhere = 0 or 1 or 2
這對(duì)應(yīng)于設(shè)置key, key & updateable, key & modified。注意,在這里,我們只是對(duì)一個(gè)表進(jìn)行了設(shè)置,如果需要更新多個(gè)表,你需要分別對(duì)每個(gè)表進(jìn)行這些設(shè)置。.
這樣,就可以調(diào)用dw_control.Update()
另外,還可以用下面的語(yǔ)句來(lái)設(shè)置:Update Key In Place:
Dw_control.object.DataWindow.Table. UpdateKeyInPlace = "yes" or "no"
這與在Update屬性對(duì)話框中Key MOdification下的兩個(gè)單選按鈕作用相同。它主要在更新關(guān)鍵字之后,對(duì)PB生成SQL語(yǔ)句進(jìn)行控制(使用update或insert)。
Yes - 當(dāng)關(guān)鍵字被修改時(shí),使用UPDATE進(jìn)行更新。
No - 當(dāng)關(guān)鍵字被修改時(shí),使用DELETE 與 INSERT 語(yǔ)句。
下面是一個(gè)簡(jiǎn)單的例子,它用于更新PB Demo DB數(shù)據(jù)庫(kù)中的DEpartment表。它使dept_name列可以被更新,同時(shí)在更新時(shí)僅根據(jù)關(guān)鍵字dept_id進(jìn)行更新。
dw_1.Object.DataWindow.Table.UpdateWhere = 0
dw_1.object.dept_name.update = "yes"
dw_1.Object.dept_id.key = "yes"
dw_1.update()