PB代码优化

pb 15个小技巧汇总 表达式中rgb(255,240,194)为浅黄色,rgb(255,254,249)为浅白色,rgb(247,247,239)为浅黄色。10 、//如何生成固定长度的前面加零的数字编号,例如:12生成"00012",1234生成"01234"。dw_1.setFilter("(name like '赵%') and (sex = 0)")可以利用Describe("column_name.width")是否为"!调用方法:shRunDefltBrowser("www.pdriver.com") 阅读详情

PB代码优化

现今计算机的运行速度已经很快了,并且由于老板时常在耳边念着紧箍咒,因此,我们有意或者无意的忘记优化我们的代码,只要能完成任务就行了(我也是)。不过,我们闲下来的时候,不妨也来看看我们的代码是否有需要改进的地方。下面就是我觉得值得优化的几种情况。

第一种情况:

IF condition1 AND condition2 THEN

      //Code goes here.

END IF

和

IF condition1 THEN

      IF condition2 THEN

             //Code goes here.

      END IF

END IF

 

对于书写的第一种方式,由于PB编译方式与常见的方式不同,就是无论条件1的值如何,都要对条件2进行运算。这样一来,当条件1为false时,就可能要无谓的对条件2进行运算了。就按随机的概率而言,可能会多进行一半的运算。因此,对于大多数情况而言,我想最好是以第二种方式书写。当然,特殊情况也是有的,那就是你的确想对条件2进行运算。类似地,对于or也一样。

 

IF condition1 OR condition2 THEN

      //Code goes here.

END IF

和

IF condition1 THEN

      //Code goes here.

ELSE

      IF condition2 THEN

             //Code goes here.

      END IF

END IF

第二种情况:

IF NOT condition THEN

      //Code goes here.

END IF

和

IF condition THEN

      //No code goes here.

ELSE

      //Code goes here.

END IF

 

对于上一种方式,条件表达式返回false并且再进行一个非运算,才执行下面的代码。这样相对于下面一种书写方式可能多执行了一个非运算。如果大家有什么疑问,您不妨测试一下下面这个例子:

 

//小测试:其中的判断条件只是为了表示一下,实际情况可能更复杂。

 

long i                   //计数器

long ll_start          //执行开始时间

long ll_used1       //方式一耗时

long ll_used2       //方式二耗时

 

//方式一

ll_start = Cpu()

for i = 1 to 900000

      if not (1 > 1) Then

             i = i

      end if

next        

ll_used1 = Cpu() - ll_start

 

//方式二

ll_start = Cpu()

for i = 1 to 900000

      if 1 > 1 Then

            

      else

             i = i

      end if

Next

ll_used2 = Cpu() - ll_start

 

//查看结果

If ll_used2 > ll_used1 Then

      MessageBox("提示","前者运行时间短!")

Else

      MessageBox("提示","后者运行时间短!")

End If

 

可能有人会说,用下面的那种方式,如果在条件表达式返回false的时候,那么,if下就没有代码,这样看起来就不太舒服。的确是这样。因此,我们在写成上面的那种方式时,尽量保持不要使用not运算,而保持条件表达式本身就返回希望的true值。

第三种情况:

IF condition1 THEN

      //condition1

ELSEIF condition2 THEN

      //condition2  

ELSEIF condition3 THEN

      //condition3

ELSE

      //Other

END IF

和

choose case /*expression*/

      case /*item*/

             /*statementblock*/

      case /*item*/

             /*statementblock*/

      case else

             /*statementblock*/

end choose

 

对于形如这样的表达式,我想我们一般都没去考虑先后顺序。但是,其实我们应该把最可能发生的情况,放在前面,这样可以避免在对一大堆条件进行判断后,才到我们真正需要运行代码的地方。

第四种情况:

FOR ... TO ...

     

      IF condition THEN

             //true

      ELSE

             //false

      END IF

     

NEXT

和

IF condition THEN

      //true

      FOR ... TO ...

             //Code goes here

      NEXT

ELSE

      //false

      FOR ... TO ...

             //Code goes here

      NEXT

END IF

 

尽管下面这种书写方式,看起来好象代码多了一些,但是却极大的避免了在每个循环中都进行条件判断。其实,一个原则就是,我们应当尽量避免在循环中进行条件判断,而是把条件判断放到循环体的外面进行。

 

其实,真正对于PB语言有特殊性的,也就是第一种情况,对于后面三种情况,对于别的编程语言,我想也同样适用。

 

这是我的一点体会,谬误的地方请大家指正。

 

PowerBuilder编程俱乐部资源大全 本文还有配套的精品资源,点击获取 简介:PB编程俱乐部提供一个全面的PowerBuilder资源集合,涵盖了各种编程技巧和学习资料。PowerBuilder是一款专门针对数据库应用开发的面向对象快速应用开发工具,以其数据窗口组件、图形化界面和开发效率而受到开发者青睐。俱乐部资源包括常见问题解答手册、书籍推荐、教程阅读器下载链接,以及更多电子书和在线教程,旨在帮助PB开发者解... 阅读详情

相关推荐

PB动态SQL语句

完整讲述PB中关于动态SQL的使用。相信会让你的PB大大精进。。

有关Powerbuilder的悲观论和乐观论(由郭贴引发的300多贴争辩想到的,也是很久就想秉明的一个观点)

不管用一个工具多少年,写过多少本书,技术日新月异,我想大家都是在一个起跑线上。话最多的就是初学者,看到一个新技术就来pk。pk是永远没有结论的。存在就是真理。pb能做很多事情,而且还活着,还是有如此多的弟兄在用。就有他存在的道理。未来的需求是春秋战国,群雄四起,各种工具都有它跑马圈地的能力。相比十几年前单一的需求和单一的工具来说,不可同日而语了。拿pb做证据已经完全无法说明今天的问题了。我建议,仅

chengg0769 平淡无奇见真知 独立博客: http://blog.mis2erp.com 5806

PB代码格式化和优化工具

PBHelper(PBCOMMENT)是一个专门为PB程序员设计的综合性编程 助手工具。她能帮助PB程序员自动生成PB脚本代码注释、自动缩进美化 代码、自动完成代码、大小写转换,实现不同数据库类型之间的SQL语句 转换等功能。

PowerBuilder,真的走向没落?

<br />PowerBuilder,曾经是开发MIS系统的专用工具。但随着B/S结构的流行,Java、.net的横行,渐渐的被人遗忘。是它真的不行了吗? 是它真的不适应C/S吗?其实早在9.0版本开始,PB就已可以面向C/S开发,现在就更强大了,关键是潮流使然,再加上SYBASE失败的经营策略。跟不上潮流就要被淘汰!Sybase不要再孤芳自赏了,再下去真的就被人遗忘了。

xj_zj的专栏 8461

Ansys Maxwell磁场仿真入门:无线传能线圈自感与互感计算全流程

本文详细介绍了使用Ansys Maxwell进行无线充电线圈磁场仿真的全流程,包括模型建立、求解器设置、电感参数提取及优化策略。通过实战案例,帮助工程师掌握线圈自感与互感计算技巧,提升无线充电系统设计效率与精度。重点解析了Maxwell在磁场仿真中的关键应用,适用于电磁场仿真初学者和进阶用户。

weixin_29047545的博客 440

STM32F407实现LwIP的MQTT客户端并连接到服务器

这个是用LwIP协议栈中自带的MQTT客户端API写成的,代码注释很详细,附带有服务端的展示。LwIP版本是2.1.2.

wait_for_STM32的博客 6396

Powerbuilder项目文件太多,对象继承太多导致编译需要几个小时的解决方案

在workspace》target》properties》library list中,把不经常需要在此项目中修改的pbl全部改为pbd(前提时,这个pbd已经单独编译过。abc这个项目,有print.pbl,md5.pbl,pfc.pbl,socket.pbl那这些库对当前业务系统来说,是不需要再修改的。项目文件太多,很多pbl是一个相对独立的库算法,而且还夹杂着pfc的一些老库。这些库的特点就是继承和封装比较好,但是导致编译速度特慢。**注:可能最影响速度的就是pfc这样的库。因为它是完整而系统的库。

chengg0769 平淡无奇见真知 独立博客: http://blog.mis2erp.com 771

两相变频交错PFC实战:从论文理论到PSIM仿真的完整避坑指南

本文详细解析了两相变频交错PFC技术从理论到PSIM仿真的完整实现过程,特别针对CRM模式下的BOOST PFC设计挑战提供实用解决方案。涵盖周期值比较法与RS触发器法的对比实施、PSIM仿真中的过零处理与收敛性优化等核心问题,并给出硬件实现的进阶建议,助力工程师高效完成高功率密度PFC设计。

weixin_30632089的博客 422

powerBuilder sql语法语句

select userName,password into :username, :password from t_operator where t_operator.name =: sle_1.text;

qq_41289353的博客 1621

〖进阶篇1〗YAML参数解析:从nav2_params.yaml看机器人导航调优

本文深入解析了ROS2 Nav2导航系统中关键的nav2_params.yaml文件,提供了从定位、行为树、运动控制到环境感知等核心模块的参数调优实战指南。文章通过具体场景案例,如狭窄走廊、动态仓库和高精度对接,详细阐述了如何调整AMCL粒子数、控制器权重、代价地图膨胀半径等参数,以解决机器人导航中的犹豫、碰撞和精度问题,帮助开发者实现从“能用”到“好用”的进阶。

m9n0o的博客 417

VCS2018在Ubuntu20 18安装步骤

之前在Ubuntu20上下VCS,花了好几天时间,本来想写博客避免以后重复劳动。但由于各种原因拖了一两个月,这次由于疫情原因,期末考试推迟,所以就再次在Ubuntu18上下了VCS,顺便写博客记录。 以下VCS2018安装方法适用于 Ubuntu20、Ubuntu18,亲测可用。其他Linux发行版没试过,但应该步骤差不多。 文章目录安装包安装步骤1、建立安装路径,更改权限2、运行安装器进行安装3、生成License文件4、设置环境变量5、验证License6、启动lmgrd验证软件是否安装成功dvever

s-stone的博客 3万+

PB中图像处理功能资源文件介绍:让图像处理在PB中游刃有余

PB中图像处理功能资源文件介绍:让图像处理在PB中游刃有余 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在现代软件开发中,图像处理是一项基础且关键的技术。PB(PowerBuilder)作为一款经典的应用程序开发工具,虽然提供了基本的图像处理功能,但在复杂应用场景下,功能略显不足。为此,本项目提供了一份专为PB定制的图像处理功能资源文件,帮助开发者轻松实现图像的转换...

gitblog_06729的博客 1052

Ubuntu下Vim创建属于自己的头部注释和代码模板

痛点 每次打开vim想写个C或者C++的程序都要把固定的模板敲一遍,是不是感觉非常的繁琐,能不能把Vim弄得像IDE那样新建一个文件直接生成对应的头部注释和代码模板,减少这些重复工作呢?下面我尽量详细的介绍实现的方法: 先看看新建文件后的效果 C语言格式效果 C++语言效果 方法: 使用命令 vi /etc/vim/vimrc 打开vimrc这个文件,然后复制以下代码至文件末尾的空白处即可! 修改vimrc文件里面的内容必须要用root管理员身份才能进行修改,修改时先切换至root身份即可。 "新建.

weixin_42137584的博客 1561

sql与PB程序的优化

下面内容从优快云的一篇贴子中找到的。我用过的一个优化方法是:当检索表和视图混合的查询时,若需要检索参数,且表与视图均可用于检索参数的话,应使用视图作检索条件,速度将有明显提升。 另附两篇关于 pb 代码优化的网摘: 优化你的 sql 和 dw   一、处理 SQL 语句   1、缓冲 SQL 语句   在应用程序中,有时需要反复调用同一组SQL语句,在这种情况下,可以通过在应用中为这些 SQ

xiongxiao的专栏 3864

基于CH32X035的USB双K型热电偶温度计:硬件设计、冷端补偿与信号放大详解

本文详细介绍了基于CH32X035单片机设计USB双K型热电偶温度计的完整方案。重点解析了硬件设计中的核心挑战:如何利用精密运放GS8552-SR进行信号放大,以及采用NTC热敏电阻和查表法实现精确的冷端补偿。项目通过USB供电通信,实现了双路高精度温度测量与显示,为电子爱好者和工程师提供了实用的参考设计。

weixin_42153793的博客 160

安卓手机部署酒馆 SillyTavern 全攻略(Termux 本地安装教程)

本文详细介绍了如何在安卓手机上通过 Termux 环境本地部署 SillyTavern,一个功能丰富的角色扮演对话 AI。步骤包括安装 Termux、Git,克隆 SillyTavern 仓库,安装 Node.js 和依赖,启动 SillyTavern,以及可选的高阶玩法——安装 TAI-Extras 扩展模块。文章还提供了常见问题的解决方案和优化技巧,如更新 SillyTavern、处理报错、文件访问、添加快捷命令和禁用安卓后台进程杀死。通过本教程,用户可以在安卓手机上体验本地部署的 AI 对话,享受更高

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

pb连接mysql性能_sql与PB程序的优化

下面内容从优快云的一篇贴子中找到的。我用过的一个优化方法是:当检索表和视图混合的查询时,若需要检索参数,且表与视图均可用于检索参数的话,应使用视图作检索条件,速度将有明显提升。另附两篇关于 pb 代码优化的网摘:优化你的 sql 和 dw一、处理 SQL 语句1、缓冲 SQL 语句在应用程序中,有时需要反复调用同一组SQL语句,在这种情况下,可以通过在应用中为这些 SQL建立缓冲区来提高执行性能...

weixin_39866874的博客 387

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

PB11.5 WEB客户端编程技巧总结

一、概述 用PB11.5把现有C/S程序转换成WEB应用程序后,保留了大部分C/S环境下的代码,并且大部分都能执行过去。但是在BS平台下,原来的PB代码从客户端转成了IIS上的服务代码,原的“客户端”就成了浏览器,转换后的客户端编程其实就是面向浏览器的编程。 根据目前我对PB11.5所了解的情况,PB11在代码方面可以使用条件编译方式嵌入.NET代码,其实我感觉.net里能实现的内容,

lzp_lrp的专栏 2231

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

2024年问题解决:一次进 “源码” 排错的经历,学到了,从入门到精通系列Java高级工程师路线介绍

对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。再分享一波我的Java面试真题+视频学习详解+技能进阶书籍本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录需要这份系统化的资料的朋友,可以点击这里获取。

2401_84558452的博客 356

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

分享一下自己整理的pb常用函数

优快云这个账号是我今年6月1号注册的,也就前几天的事,以前在学校虽说也上技术论坛,不过那都是路过看看,打打酱油。今年出来实习啦,公司是用pb开发的,在此之前我都不知道还有pb这门开发工具。没办法硬着头皮上,准备自己买本书慢慢啃,跑去市中心(广州市天河体育中心)看看,谁知道竟然没有pb方面的书,只好网购了。初步接触pb发现和vb很像,真不是一般的像,需要写代码的地方特别少。特别在公司开发的时候,只

阿木 2852

PB 删除全部记录

PB中删除全部记录时,一般会想到用如下的函数实现     for   ii=1   to   dw_1.RowCount()//删除所有行      dw_1.deleterow(ii)                         next   但实际上用上面代码无法删除所有记录 用如下的代码才是王道 do while dw_1.RowCount() > 0

sq8706的专栏 2010

Clickhouse安装及使用

https://blog.youkuaiyun.com/m0_37739193/article/details/79611560

qq_26249609的博客 586

protobuf message定义_巧用 Protobuf 反射来优化代码,拒做 PB Boy

作者:iversonluo,腾讯 WXG 应用开发工程师有些后台同学将自己称为 SQL Boy,因为负责的业务主要是对数据库进行增删改查。经常和 Proto 打交道的同学,是不是也会叫自己 PB Boy?因为大部分工作也是对 Proto 进行 SET 和 GET。面对大量重复且丑陋的代码,除了宏是否有更好的解决方法?本文结合 PB 反射给出了我在运营系统开发工作中的一些代码优化实践。一、...

weixin_39534149的博客 463

PB数据窗口大量数据更新速度慢的问题

因PB工具的设计缺陷,记录数多的datawindow进行数据更新或scroll时,速度很慢,原因为要对不可见的数据也要进行界面刷新,改为每1000行刷新1次,耗时会降为原来的1%。通过idw_1.setredraw(true)与idw_1.setredraw(false)进行控制。

sxdtzhp的专栏 1万+
上一篇: 伟大的解决方案—DataWindow.Net(二)
下一篇: Sql Server Linked Oracle Server
dotnba
博客等级 码龄27年 34粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值