电子工业部第二研究所
侯一雪
---- Power Builder
中提供的许多工具对象和函数,功能强大、使用方便,使开发人员的工作更加灵活、简洁。同时,可以使用特定数据库管理系统专用的SQL语句,大大增强了程序操纵和访问数据库的能力。但在使用中,笔者发现PB
的下拉列表框(DropDownListBox)的Item在取固定值时较为方便,而需从数据表中取变化的值则相对较烦琐,经笔者分析,编制如下函数,实现了上述功能,希望给广大PB编程爱好者一点参考。
---- 具体实现步骤:
---- 1. 新建函数DDLB_FROM_TAB,参数分别如下:
参数 类型 传递方式 说明
tab_name string value 表名
col_name string value 待取值列名
filt_colname string value 条件列名
filt_ch string value 比较符
filt_value string value 条件值
ddlb_name dropdownlistbox value 下拉列表框名
---- 2.添加函数脚本:
string ls_add_string, ls_select_string
int li_pos
DECLARE dyn_cursor DYNAMIC CURSOR FOR sqlsa;
ls_select_string = "SELECT " + col_name + "
FROM " + tab_name + " WHERE "
+ filt_colname + filt_ch + filt_value
//此处需注意条件字段类型匹配问题
PREPARE sqlsa FROM :ls_select_string using sqlca;
OPEN DYNAMIC dyn_cursor;
if sqlca.sqlcode < 0 then
MessageBox("数据库错误!",
sqlca.sqlerrtext)
return sqlca.sqlcode
end if
ddlb_parm.SetRedraw(false)
ddlb_parm.Reset( )
Do While sqlca.sqlcode = 0
Fetch dyn_cursor into :ls_add_string;
if sqlca.sqlcode = 0 then
messagebox("",ls_add_string)
ddlb_parm.AddItem(ls_add_string)
elseif sqlca.sqlcode < 0 then
MessageBox("数据库错误!",
sqlca.sqlerrtext)
return sqlca.sqlcode
else
exit
end if
Loop
ddlb_parm.SetRedraw(true)
Close dyn_cursor;
return 0
----
3.程序调用自定义函数。由于函数参数引用为字符串,因此当值参是字符串时,需用双重引号,否则,程序运行时会提示错误。
----
以上程序在windows95、Power Builder 6.0下调试通过。
|