PB函数应用经验

返回 相似 举报
PB函数应用经验_第1页
第1页 / 共4页
PB函数应用经验_第2页
第2页 / 共4页
PB函数应用经验_第3页
第3页 / 共4页
PB函数应用经验_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述:
1 PB函数中游标的使用列string ls_bjflddlb_1.reset //清空下拉列表框内容DECLARE cur_type CURSOR FOR//定义游标select NEIRONGfrom xt_gycs //表where name****//条件using sqlca;//使用默认数据对象OPEN cur_type;//打开游标FETCH cur_type INTO ls_bjfl;//将游标的值赋给变量do while sqlca.sqlcode0 //判断游标执行是否成功(循环的意义是取完游标中的值)ddlb_1.additemls_bjfl;//如果成功,那么将值增加到下拉列表框中FETCH cur_type INTO ls_bjfl;//继续取游标值loopclose cur_type;//关闭游标在使用游标的时候注意每次从游标中只能取一个值赋给变量,游标中的值是一个数组型的即游标里可能存在多个不同的值。2 PB中提交数据的两种方式和判断方式 1删除时候直接用delete from 表 where guid(行)ls_guidk(变量) using sqlca; 那么提交的时候的判断用if sqlca.sqlcode0 then commit using sqlca;//提交数据 else messagebox提示,数据库更新失败失败原因gtrans_w.sqlerrtext rollback using sqlca; return end if 2用data window删除 dw_name.deleterowrow //row0删除当前行删除成功返回1,错误-1,为空返回null提交的时候的判断用if dw_name.update1 then commit using sqlca;//提交数据 else messagebox提示,数据库更新失败失败原因gtrans_w.sqlerrtext rollback using sqlca; return end if 总结只要是对数据库直接操作的时候就用sqlca事务对象.sqlcode0来进行判断提交,如 delete,insert,update 等都是。只要是对数据窗口进行的操作都用 dw_name.update1 来进行提交,如deleterow,insertrow,setitem等都是。3 trim删除字符串首部和尾部的空格 eg ls_nametrimsle_1.text4 拆分字符串操作 lenw返回字符总个数,posw返回某字符在ls_guid(变量)中的第一次出现的位置(返回值是long型数字),leftw字符,返回左边N个字符(返回值是一个字符串) rightw字符,返回右边N个字符 列 ABCDE POSWABCDE,CD4下面举得这个列子是个很有用的拆字符串的方法string ls_newstr //定义数组int li_log,li_i,li_len li_lenlenw* //返回字符的个数(在此返回1)li_log poswls_guid,*//返回*在字符串ls_guid中的位置(long型数值)li_i 1 //数组取值从1开始if li_log 0 then //假如字符串ls_guid中含有字符* 那么li_log的值大于0,在此小于零即字符串中不含有*这个字符,所以返回原字符串ls_newstrli_i ls_guidend ifdo while li_log 0 //条件为true执行下面代码ls_newstrli_i leftwls_guid,li_log - li_len ls_guid rightwls_guid,lenwls_guid - li_logli_ili_log poswls_guid,*if li_log 0 thenls_newstrli_i ls_guidend ifloop//将数组中的值赋给变量ls_sjsjguidls_newstr1ls_mlflguidls_newstr25.在ORACLE中直接提取用户登陆时间代码Date ld_dateSelect sysdate into ld_date from xt_userUsing sqlca;Xt_user表是一张登陆表,存储用户的登陆信息注意数据库中用SYSDATE6用string将日期格式化Ls_datestringsle_1,yyyy-mm-dd7在数据窗口中存入和提取数据获得当前行的行号 long ll_i Ll_idw_name.getrow存Dw_name.object.字段行号ls_guid(变量)取sle_name.textstringdw_name.object.字段行号或者用getitemstring/number/date/time、setitem8. 事件触发函数TriggerEvent 函数功能TriggerEvent 函数能够触发任何对象的事件,并立即执行该事件的事件处理程序。语法格式 objectname.TriggerEvent event ,word, long其中 objectname是对象或控件名称,将触发该对象或控件的某个事件; event是要触发的事件,其有效值既可以是标识PowerBuilder事件的TrigEvent枚举类型值(比如Clicked、Modified、或DoubleClicked等) word 和long是两个可选参数,触发事件后其值将分别保存到系统全局对象Message的WordParm和LongParm属性中。 例如 cb_OK.TriggerEventClicked //触发命令按钮cb_OK的单击事件(Clicked),并立即执行该事件的事件处理程序。 TriggerEvent 很像函数调用,执行该函数时,程序进入被触发事件的事件处理程序中执行,执行完毕后返回到TriggerEvent 语句下面一行语句继续执行9 对数据窗口控件DW_name的基本操作//清除数据窗口控件dw_1数据窗口中的所有数据。dw_1.reset //将数据窗口控件dw_1关联的数据窗口对象换成名为d_graph dw_1.dataobjectd_graph //让数据窗口控件d_graph使用系统缺省的事务对象SQLCAdw_1.settransobjectSQLCA//让数据窗口控件d_graph从数据库中提取数据。dw_1.retrieve (注在对数据窗口控件进行操作的时候一定不要忘记设置数据窗口对象,即dw_name.settransobjectsqlca sqlca为数据对象名,系统默认sqlca)10插入行和删除行操作1插入行InsertRow InsertRow函数在数据窗口的主缓冲区中插入一个空行,其语法格式为dwcontrol.InsertRow row 其中row是个长整数(long型),它指定插入行的插入位置。功能在数据窗口的主缓冲区中插入一个空行例如,我们想在数据窗口dw_1中插入一行,并让该行成为数据窗口的第10行,那么语句dw_1.InsertRow 10 即能完成这个任务。row等于0时含义特殊,它表示在主缓冲区最后一行后面插入一行。InsertRow 函数执行成功时,返回一个long型值指示插入行的行号,执行失败时返回 -1。2删除行DeleteRow DeleteRow函数在数据窗口的主缓冲区(即显示在用户面前的数据中)中删除一行,语法格式为 语法格式dwcontrol.DeleteRow row 其中 row为要删除行的行号,row等于0时删除当前行。功能删除数据窗口主缓冲区中一行记录。 DeleteRow 函数执行成功时返回1,失败时返回-1。例如 dw_1.DeleteRow 10 删除数据窗口控件dw_1中的第10行。 DeleteRow 函数执行成功时返回1,失败时返回-1。11对数据窗口的行号操作1得到当前行号GetRow GetRow 函数返回当前行的行号。语法格式为dwcontrol.GetRow 功能得到当前行的行号。该函数返回一个long型值,表示当前行号。如果没有选中任一行,则返回0,出错时返回-1。2设置某行为当前行SetRow SetRowrow函数把参数row指定的行设置成当前行。语法格式为 dwcontrol.SetRow row 功能把参数row指定的行设置成当前行。 设置成功时该函数返回1,否则返回-1。如果row的值小于1或大于数据窗口中的总行数,则SetRow 函数执行失败。SetRow 函数可能触发下述事件ItemChanged ItemError ItemFocusChanged RowFocusChanged3得到当前数据窗口中的记录行数RowCount 语法格式dwcontrol. RowCount 例按钮“下一条”可以改变数据窗口的当前行 long ll_row, ll_rsm dw_1.SetRowFocusIndicatorHand // 设置行光标指示为手。 Ll_rsm dw_1.RowCount Ll_row dw_1.GetRow if ll_row ll_rsm then ll_row 1 else ll_row end if dw_1.SetRow 注为了清楚显示,可在窗口Open事件中加入 dw_1.SetRowFocusIndicatorHand //设置行光标指示为手。12对数据窗口的列号操作1得到当前列号GetColumn GetColumn 返回当前列号。语法格式为dwcontrol.GetColumn 该函数返回一个integer型值,表示当前列号。返回值为0表示无当前列,返回值为-1表示操作失败。2设置某列为当前列SetColumn SetColumn 把参数column指定的列设置为当前列。语法格式为 dwcontrol.SetColumn column 设置成功时该函数返回1,否则返回-1。如果column的值小于1或大于数据窗口中的总列数,则SetColumn 函数执行失败。参数column可以是个列号(integer)、也可以是列名(String)。
展开阅读全文

最新标签

电脑版 |技术文库版权所有
经营许可证:粤ICP备16048919号-1 | 粤公网安备 44060602000677号