PB动态创建数据窗口【SyntaxFromSQL()】
前述
使用PowerBuilder建立数据窗口时通常不能自己选择数据来源和显示类型,如何让用户在应用程序中自己定义数据窗口的数据来源和显示类型呢?为了达到这个目的,必须在运行程序阶段根据用户自己的需求,动态地建立一个数据窗口。
使用 SyntaxFromSQL()函数
利用SyntaxFromSQL()函数可以得到建立数据窗口的语法,SyntaxFromSQL()函数的基本格式如下 :
//事物对象 SyntaxFromSQL(数据来源字符串,显示类型字符串,错误字符串) SQLCA SyntaxFromSQL(ls_sql,ls_present,ls_err)
范例
// 声明变量 string ls_sql,ls_present,ls_err,ls_syntax // 定义数据窗口的数据来源 ls_sql = "select emp_id from employee" //定义数据窗口显示字符串 ls_present = "style(type=tabular)" // 得到建立数据窗口对象语法,如果错误发生 SyntaxFromSQL 返回一个空字符串 ls_syntax = SQLCA.SyntaxFromSQL(ls_sql,ls_present,ls_err)
利用 SyntaxFromSQL()函数建立一个数据窗口语法后,必须将它与窗口上的数据窗口控件结合,这个数据窗口控件必须已经存在于窗口中,范例如下:
// 声明变量 string ls_syntax,ls_err ls_err = dw_1.Create(ls_syntax,ls_err) dw_1.SetTransobject(SQLCA) dw_1.retrieve()
在上面程序中ls_syntax是运行SyntaxFromSQL()函数后所返回的字符串;
整体范例
// 声明变量 string ls_sql,ls_present,ls_err,ls_syntax // 定义数据窗口的数据来源 ls_sql = "select emp_id from employee" //定义数据窗口显示字符串 ls_present = "style(type=Grid)" // 得到建立数据窗口对象语法,如果错误发生 SyntaxFromSQL 返回一个空字符串 ls_syntax = SQLCA.SyntaxFromSQL(ls_sql,ls_present,ls_err) //声明变量 long ll_err //动态绑定数据 ll_err = dw_1.Create(ls_syntax,ls_err) //绑定事物对象 dw_1.SetTransobject(SQLCA) //检索数据 dw_1.retrieve()