资源描述:
《新动态数据窗口技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、12.3动态数据窗口(3)12.3.3获得数据窗口的SQL语句有时需要修改数据窗口对应的SQL语句,以便构造查询应用。这时,首先就要读取数据窗口当前的SQL语句,然后再对where子句进行修改。可以有多种方法获取SQL语句。最常用的是使用函数GetSQLSelect,它的语法如下:dwcontrol.GetSQLSelect()其中,dwcontrol是数据窗口控件的名称,可以是子数据窗口或datasTore等。函数执行正确则返回对应的SQL语句,否则返回空字符串("")。另外,还可以使用Describe函数描述数据窗口对象的相关属性来获得。在使用该
2、函数时,如果数据窗口联结到数据库则返回真正的SQL语句,否则返回数据窗口的PBselect语句。PBselect语句是数据窗口的专用语法,和SQL语句有很大的区别,但也是从SQL语句转化而来的。数据窗口对象有三个属性用来保存SQL语句,它们是table.select、table.SQLselect、table.select.attribute。这些属性获得的SQL语法稍微有区别。下面是获取一个数据窗口SQL语法的不同的语句:Stringls_SQLLs_SQL=dw_1.GetSQLSelect()Ls_SQL=dw_1.Describe("Data
3、Window.table.select")Ls_SQL=dw_1.Describe("DataWindow.table.SQLselect")Ls_SQL=dw_1.Describe("DataWindow.table.select.attribute")使用下面的脚本可以获取不同状态下、不同的方法对应的SQL语句。脚本如下:longll_RowNostringls_tempdw_1.SetTransObject(SQLCA)ll_RowNo=dw_2.InsertRow(0)dw_2.ScrollToRow(ll_RowNo)ls_temp=dw_
4、1.Describe("DataWindow.table.select")dw_2.SetItem(ll_RowNo,"method","table.select")dw_2.SetItem(ll_RowNo,"connected",ls_temp)ll_RowNo=dw_2.InsertRow(0)dw_2.ScrollToRow(ll_RowNo)ls_temp=dw_1.Describe("DataWindow.table.SQLselect")dw_2.SetItem(ll_RowNo,"method","table.SQLselect")d
5、w_2.SetItem(ll_RowNo,"connected",ls_temp)ll_RowNo=dw_2.InsertRow(0)dw_2.ScrollToRow(ll_RowNo)ls_temp=dw_1.Describe("DataWindow.table.select.attribute")dw_2.SetItem(ll_RowNo,"method","select.attribute")dw_2.SetItem(ll_RowNo,"connected",ls_temp)ll_RowNo=dw_2.InsertRow(0)dw_2.Scro
6、llToRow(ll_RowNo)ls_temp=dw_1.GetSQLSelect()dw_2.SetItem(ll_RowNo,"method","getSQLselect()")dw_2.SetItem(ll_RowNo,"connected",ls_temp)Disconnect;ls_temp=dw_1.Describe("DataWindow.table.select")dw_2.SetItem(1,"not_connected",ls_temp)ls_temp=dw_1.Describe("DataWindow.table.SQLsel
7、ect")dw_2.SetItem(2,"not_connected",ls_temp)ls_temp=dw_1.Describe("DataWindow.table.select.attribute")dw_2.SetItem(3,"not_connected",ls_temp)ls_temp=dw_1.GetSQLSelect()dw_2.SetItem(4,"not_connected",ls_temp)Connect;上面的脚本在窗口的Open事件中编写,执行后的结果如图12-8所示。图12-8显示SQL语法12.3.4修改数据窗口的SQL语
8、句使用上面介绍的方法获得SQL后,可以进行修改加工,然后重新应用于数据窗口对象。使用这种方法可以创建功能比较