1、setsqlselect用法:
ls_select=getsqlselect //通過getsqlselect取得當前數據窗口的查詢語句
ls_where=" " //給變量ls_where賦值,將所要添加的限定條件賦給此變量,但應考慮到select子句與where子句之前的空格
dw_1.setsqlselect(ls_select+ls_where) //通過setsqlselect將生成的查詢語句更新至數據窗口
dw_1.event ue_retrieve()
2、dw_1.modify用法:
Old_Select=dw_1.Describe("DataWindow.Table.SQLSelect ")
ls_select=getsqlselect
ls_where=" "
dw_1.modify("DataWindow.Table.Select='" + ls_select+ls_where + " ' ")
dw_1.settransobject(SQLCA)
dw_1.retrieve()
dw_1.object.DataWindow.Table.Select=Old_Select
更新完后可用以下語句取出select語句查看並調試
messagebox("",string(dw_1.Describe("DataWindow.Table.SQLSelect ")))
網上有貼子說此語句只能更改DW查詢語句中的where子句,暫未證實
3、dw_1.object.DataWindow.Table.Select=" " 用法:
此種用法與dw_1.modify()基本相同,只是使用dw_1.modify()時,在()中需要使用雙引號把其中的DataWindow.Table.Select以及其后的變量引起來,需要考慮引號的對應關系問題,而此種用法則相對簡單一些
Old_Select=dw_1.Describe("DataWindow.Table.SQLSelect ")
ls_select=" select …… from ……"
ls_where=" ……"
ls_having=" …… "
ls_groupby=" …… "
dw_1.object.DataWindow.Table.Select=ls_select+ls_where+ls_having+ls_groupby
dw_1.settransobject(SQLCA)
dw_1.retrieve()
dw_1.object.DataWindow.Table.Select=Old_Select
感覺此語句最為強大,用起來也順手,我喜歡
注意:在動態修改sql語句時,select段可以修改,但應確保select后面跟隨的字段個數以及類型應與建立數據窗口時選擇的字段個數和類型相同,否則報錯