自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吴半止的专栏

我的世界从此以后多了一个你

  • 博客(48)
  • 问答 (1)
  • 收藏
  • 关注

原创 sharedata卡死、程序崩溃

最近给公司处理老版本中发现的bug,某个sharedata代码,数据量一大总是崩溃,且不报错。测试了几种可能,最后跟踪sql发现一个隐藏比较深的问题。举例:dw_1.sharedata(dw_2)如果dw_1或dw_2中,有些字段的edit面板中的dddw属性,里面的dddw对象dw中本身还有某些字段有dddw,存在设置错误,比如dddw不对或者value和display不对。一般需要跟踪SQL来发现,再加一点直觉。...

2021-03-24 09:41:34 267

转载 PB powerbuilder 数据库窗口的 scrolltorow 无效的说明(转)

PB 数据库窗口设计时,会常用到scrolltorow ,即跳转到指定的行。而经常有人抱怨,该函数无效。其罪魁祸首就是setrow这个函数,如果在scrolltorow函数前面使用了setrow,并且参数row值相同,那么scrolltorow是看不到效果的。因为如果当scrolltorow跳转的行是当前行,数据库窗口不会scroll,而setrow恰好是把指定行设置为当前行。建议:先scrolltorow,再setrow。另外,scrolltorow到的行是不会高亮显示的,如果需要,.

2020-06-10 10:32:28 813

原创 PB9对自定义SQL语句的检测很奇怪

结论在PB9中,alter + update 组合语句需要注意分开写,两者之间加 go 也不行举例:create + insert 组合语句:SQLserver2008数据库执行成功PB9执行成功//语句一ls_sql = "create table T_student (~r~n" +& "[id] [tinyint] IDENTITY(1,1) NOT NULL,~r~n" +& "[stu_id] .

2020-06-04 10:48:36 256

原创 PB中CreateDirectory、Fileopen不成功返回-1

例:li_re = CreateDirectory( ls_dir )注意点: ls_dir中,间隔号是“\“反斜杠,而不是除号 “/”; 可以为绝对路径,也可以为相对路径,建议绝对路径; 最容易忽略的一点,一次只能向下建立一层目录AAA(D:\AAA),不能连续建立一层以上目录(D:\AAA\BBB),只能先建立AAA后再建立BBB。 ...

2020-03-31 17:42:13 1153

原创 PB datawindow 数据窗口列项突破char字符串长度为255的限制

很多时候我们需要对从数据库中取出长字符串,但是PB里datawindow默认最大只能取255个字符,哪怕直接修改editsource也不能突破255限制。经过探索,亲测以下方法可行。1、首先,数据库表(标量值函数也可以)T_chcker中,某字段cmemo的长度需要超过255,例如设为varchar(2000),如下图:图1.数据库字段长度2、数据源连接属性里的Synt...

2019-11-13 09:32:48 1566

原创 同一段sql语句,每次执行结果(记录数目)不一样

同一段sql语句,每次执行结果(记录数目)不一样。可能是字段类型的问题,查询处的结果集中,会出现 0 变成如 0.0004541248577E-15 这种浮点数字。 解决办法:在做关系比较或者join on的时候,需要把用到的浮点数字段都转换成四舍五入到固定位数的decimal格式,把null转换成空值。如:convert(decimal(18,3),iquantity)...

2018-09-26 11:45:56 3994

转载 jsp页面:request.getContextPath()报错

报错内容:Multiple annotations found at this line:- String cannot be resolved to a type- The method getContextPath() from the type HttpServletRequest refers to the missing type String解决

2017-07-11 14:54:45 7153

原创 关于数据库里的值是0.05,通过dw取出来是0.049999的尾差问题

如果数据库表里的字段属性是float,那么PB连接数据库表的时候,float会转成number,这时候对dw取数(dw.getitemdecimal或者dw.object.iprice[row]),会得到有尾差的数如:数据库的表 test 里的字段 iprice 的属性是float,值0.05dw.retrieve()ld_price =

2017-07-07 12:15:29 842

原创 动态创建dw的时候运行失败及列名选择

动态创建dw的时候,务必先把SQL语句通过新建一个dw模拟一下,看看生成的列名是不是有特殊的情况,比如动态创建dw的sql语句类似为:select ...cinvcode from (select ... from ...)aleft join inventory,当表别名a在数据库中没有的时候,做:ls_cinvcode = dw.object.cinvcode[row]...

2017-07-07 12:05:12 301

原创 PB中dw合并相同内容的行

效果如下图:========================================================================1、在这里调出该设置2、把需要合并的列加入进去。注意这里加进去的三个列的逻辑关系,一个列与上下行内容不同就会带着另外两个列开新行...

2017-07-07 11:56:08 1321

原创 powerbuilder IDE的智能提示或补全

顶部菜单栏--> Design--> Options...--> AutoScript

2017-07-07 11:47:59 2634

原创 PB开发过程中如何search查中文字符内容

这个checkbox勾上就可以search查找中文字符了

2017-07-07 11:37:52 2138

原创 对datawindow里的dddw里的子datawindow过滤

对dw_1里的 edit属性为 dddw 字段里的子dw过滤,增加 child.setsqlselect(ls_oldsql) 是为了避免如果下次还有查询,免得把上次的查询条件带过来datawindowchild childstring ls_oldsqlif dw_1.getchild("ht_ly_depcode",child) = 1 then child.settra

2017-07-07 11:24:51 484

原创 PB使用系统的计算器(其他的小程序也类似)

//PB使用系统的计算器(其他的小程序也类似)string ls_fileExists, ls_fileExists2boolean ls_Exists, ls_Exists2ls_fileExists='c:\windows\calc.exe'ls_fileExists2 = 'C:\Windows\system32\calc.exe'ls_Exists=fileExists(ls_f

2017-06-30 18:26:58 1274

原创 在dw的itemchanged事件里面,修改当前参数data

原则上,在datawindow的itemchanged这个事件中对这三个自带参数:dwo、row、data,是不能修改的,但是我们可以用post的方式对其进行修改,曲线救国,如下情形:这里的wf_add_inv(row,data,dwo_name)函数放在dw的itemchanged事件中,并接受了其三个参数:dwo、row、data,dw_2.post

2017-06-28 19:45:54 1633

原创 dw.find,如果参数endrow 小于 startrow,会出现倒序查询

//dw.find,如果参数endrow小于startrow,会出现倒序查询stringls_cvencode,ls_cinvcodelongll_row,rtn,ll_rowcountdoubleld_pricell_row=1ll_rowcount=dw_2.rowcount()do ll_row=dw...

2017-06-28 19:43:31 563

原创 PB导出图片到指定目录

//PB导出图片到指定目录integer li_FileNumstring ls_imgID, ls_pathblob blob_imglong ll_rowcount, row, ll_serialinteger li_resultli_result = GetFolder( "图片存放路径", ls_path )dw_imgs.settransobject(sqlca)ll_

2017-06-28 18:29:10 1544 1

原创 PB关于字符串按照一定输入格式、规则检测(正则表达式)

在PB中使用正则表达式:matchw(string str,string pattern)比如:验证某个邮箱格式是否正确 代码exp:string ls_matchstring ls_email_addressls_match = "^[A-Z,a-z,0-9,'_']+@[A-Z,a-z,0-9]+\.com?$" //正则表达式规则ls_emai

2017-06-28 18:21:23 3940 1

原创 dw删除某行 和 撤销删除某行

//假删除long ll_rowll_row = dw_2.getrow()if ll_row 0 then dw_2.rowsmove(ll_row,ll_row,primary!,dw_2,1,delete!)end if//撤销删除long ll_currowll_currow = dw_2.getrow()if ll_currow = 0 then

2017-06-28 18:10:44 1394

原创 PB改好一个版本快速复制到别的版本PBL上去

通过它,可以把一个pbl下的多个对象复制到另一个版本的pbl下。

2017-06-28 18:01:42 1824

原创 PB如何禁止拖动带title标题的response窗口

有时候,在PB工程中会有这样的场景:新弹出的窗口是response类型,很大几乎覆盖原来窗口,但是期望它不能被移动。在这个窗口下新建一个事件如下图,以及代码:IF hittestcode =  2 THEN RETURN 1注:hittestcode的值所代表含义如下: 标题:2 最小化:8 最大化/恢复:9 关闭:20 图标:3 左

2017-06-28 17:55:16 1040

转载 PB程序中如何测试网络连接是否中断?(实现Ping命令)

使用connect using sqlca连接数据库,如果和服务器网络不通,会等待很长时间(大约30~60秒) 通过Windows自带的icmp.dll,可以对服务器进行Ping,在很短时间内即可判断网络是否连通。我将网上的一个例子封装为类n_cst_ping,来简化调用过程。forward global type n_cst_ping from nonvisualobject end t

2017-02-28 12:42:31 2947

原创 sharedata简介和实例 dw_1.sharedata(dw_2)

若:dw_1.sharedata(dw_2)dw_2.sharedata(dw_3)所有对其中一个dw的内容修改(如setitem、filter)将会影响到别的两个dw;但是如果是对sql source修改(如调用全局函数gf_add_where来增加条件)则只能在dw_1上修改才有效,以最早的dw_1为主的。1、dw_2.sharedata(dw_3)--

2016-09-11 17:54:42 3116

原创 函数、事件全紫色、紫白色、全白色是啥意思

紫色:祖先窗口有内容紫白色:本窗口和祖先窗口都有内容白色:祖先对象无内容,本窗口(对象)有内容前面没有这个图标的才是没有代码的

2016-04-19 09:53:16 741

转载 PB字符串处理函数

Fill()功能建立一个由指定字符串填充的指定长度的字符串。语法Fill ( chars, n )参数chars:string类型,指定用于重复填充的字符串n:long类型,指定由该函数返回的字符串的长度返回值String。函数执行成功时返回n个字符的字符串,该字符串以参数chars中的字符串重复填充而成。如果参数chars中的字符个数多于n个,那么使用chars字符串的前

2016-04-18 18:25:45 7486

原创 dw在retrieve的时候就截取字符串

在dw的sql source里面,可以直接运用:SELECT          LEFT(cname,CHARINDEX('#',cname)) as seedFROM KA_USER  CHARINDEX是和pos差不多的函数,用于SQL数据库如:cname字段内容为:abcde#fgCHARINDEX('#',cname)返回6(字符

2016-04-18 18:22:25 479

原创 dw某一列 能合并重复行,形成 总——分 的样式

2016-04-18 18:17:10 411

原创 对象文件已过期,必须转换为当前版本

full building 一下。。。

2016-04-18 18:11:28 516

原创 在dw的itemchanged事件里面,修改当前参数data

原则上,在datawindow的itemchanged这个事件中对这三个自带参数:dwo、row、data,是不能修改的,但是我们可以用post的方式对其进行修改,曲线救国,如下情形:这里的wf_add_inv(row,data,dwo_name)函数放在dw的itemchanged事件中,并接受了其三个自带参数:dwo、row、data。当我们要修改第row行某一列的值时,可以用:

2016-04-18 18:01:51 944

原创 对datawindow里的dddw里的子datawindow过滤

对dw_1里的 edit属性为 dddw 字段里的子dw过滤,增加 child.setsqlselect(ls_oldsql) 是为了避免如果下次还有查询,免得把上次的查询条件带过来datawindowchild childstring ls_oldsql//原料领用部门if dw_1.getchild("ht_ly_depcode",child) = 1 then child.sett

2016-04-18 17:53:41 777

原创 2015工作年结

统计学与概率论上说,任何事都是概率的产物。没有绝对不可能的事,也没有百分百的事。都是一个概率,完成概率高,这事儿就成了。今天春天,在机缘下和合泰公司相遇,实习两个月,最后八月份转正,一晃到现在,也有半年了。还在大学里的时候,不知何时,也曾经在幻想,如果我脱离学生生涯转步进入社会成为职场人,会到怎样的公司?和怎样一群人共事?从事的是促进人类进步的事业还是无用功?是夕阳产业还是朝阳产业?能否扩

2016-04-18 17:41:13 316

原创 datawindow在调试的时候retrieve不出来的原因

这种情况大概有2个常见原因:1、可能是连接的数据库有问题2、可能是datawindow的retrieve参数和数据库中的参数类型不同

2016-04-18 17:17:29 525

原创 事件 带参数 和 不带参数 的执行代码

事件 带参数 和 不带参数 的执行代码比如,uo_search.postevent(clicked!) ,此时的clicked()事件,若有参数则必须传入参数,同时也会按需求返回数值然而,uo_search.postevent(“clicked”) , 此时的clicked()事件,直接执行事件里面的代码,无需带参数

2016-04-18 17:14:11 488

原创 pb中的连等应用

pb中的连等应用这段代码……一时间脑子搭牢了怎么也看不懂,请教师傅点拨,他话还没说完说完就豁然开朗了。豪蠢啊我T_Tuo_add.enabled = gf_setauth(is_auth_new) = 1//其实是‘uo_add.enabled’等于后面gf_setauth(is_auth_new) = 1的表达式的值是否为true或者false

2016-04-18 17:12:05 259

转载 对DllRegisterServer的调用失败,错误代码为0x8007005的解决办法,注册控件

对DllRegisterServer的调用失败,错误代码为0x8007005的解决办法,注册控件在手工注册DLL文件时,有时会出现“对DllRegisterServer的调用失败,错误代码为0x8007005”的提示,导致注册失败,该问题经常出现在Vista系统和Windows7系统下,解决办法如下: 方法一: 运行(或[win]+r): 然后输入regsvr32 wavdest.dll 回车

2016-04-18 17:07:38 13118

原创 PB在代码中更改数据源

PB在代码中更改数据源直接上代码:transaction itrans_dbitrans_db = create transaction //配置数据库连接对象的属性itrans_db.DBMS = "SYC Sybase ASE"itrans_db.Database = is_mid_datebaseitrans_db.ServerName = is_mid_serveritrans_d

2016-04-18 17:03:13 918

原创 两个dw之间复制某一行数据

两个dw之间复制某一行数据方法一:rowscopy(),只限于列名、顺序、列数都相同的两个dw方法二:当遇到列名、顺序、列数不全部相同的两个dw唉这个就麻烦了,需要2个dw,分别为dw_1、dw_2,且dw_2中必定包含dw_1中所有列。上代码://-------------------------------------------------------------------------

2016-04-18 17:00:00 1135

原创 自定义对象的属性增加

只要在自定义对象的声明实例变量处添加 变量 就能 自动地 在属性栏出现(下图):并且,什么类型变量自动对应什么编辑格式(int对应单行数字编辑框,string对应单行文本编辑框,boolean对应单选框)

2016-04-18 16:43:17 307

原创 如何快捷查看有关datawindow以及其下控件的属性

有时候我们在获取(Describe)或者修改(Modify)一个控件或对象的某个属性,比如visible属性,但是我们忘了怎么写,那我们就可以借用Datawindow Syntax这个工具来看:底下还有Exp例句参考哦~

2016-04-18 16:39:43 470

原创 欢迎使用CSDN-markdown编辑器

数据库字段内容有NULL或空,在PB中判断时如何处理代码块PB代码://显示已审核 if li_i1 = 1 then ls_filter1 = ls_filter1+" (cchecker <> '' and (not isnull(cChecker) )) or " end if //显示未审核 if li_i2 = 1 then ls_filter1 = ls_filter1+

2016-04-18 16:32:59 189

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除