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