PowerBuilder(PB)面试题及详细答案(完整版)_第1页
PowerBuilder(PB)面试题及详细答案(完整版)_第2页
PowerBuilder(PB)面试题及详细答案(完整版)_第3页
PowerBuilder(PB)面试题及详细答案(完整版)_第4页
PowerBuilder(PB)面试题及详细答案(完整版)_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PowerBuilder(PB)面试题及详细答案(完整版)一、基础概念类(高频必问)1、简单说说你对PB的理解,以及它的核心优势和劣势?详细答案:PB是一款面向企业级C/S架构的快速开发工具,主打数据库快速开发,核心依托数据窗口技术,早年广泛应用于金融、政务、医院、进销存等传统行业系统。优势:1、数据库操作极其便捷,数据窗口封装了增删改查、分页、排序、校验、打印等功能,不用手写大量底层代码,开发效率极高;2、自带成熟的事务、数据缓存、报错处理机制,适配传统关系型数据库,稳定性强;3、C/S客户端运行流畅,对服务器压力小,适合内网业务系统;4、语法简洁,贴近业务逻辑,上手快,业务代码维护成本低。劣势:1、主打传统桌面端,不适配移动端和互联网Web项目,应用场景受限;2、新版本迭代慢,生态不如Java、.NET完善,高端技术岗位较少;3、界面样式老旧,自定义美化难度大,难以适配现代化UI需求;4、高并发、分布式场景支持薄弱,仅适合传统中小型企业内网业务系统。2、PB中常用的全局变量有哪些?各自作用是什么?详细答案:PB内置5个核心全局变量,全程无需定义可直接使用:1、SQLCA:数据库事务全局变量,核心作用是配置数据库连接参数、建立和断开数据库连接、接收数据库执行报错信息,是所有数据库操作的基础;2、Message:消息对象,主要用于窗口、控件之间传递参数,同时可以捕获窗口事件的参数、弹出提示信息;3、Parent:父对象指代变量,在控件、子窗口中使用,直接指代当前控件所属的窗口或父容器,简化代码书写;4、This:当前对象指代变量,指代当前正在编写代码的控件、窗口或对象本身;5、Super:父类对象变量,用于继承场景,调用父对象的事件、函数和方法。3、PB的数据类型有哪些?常用的核心类型是什么?详细答案:PB数据类型分为基础类型、结构体类型、对象类型三大类,业务开发最常用的基础类型如下:1、字符串型String:存储文字、编号、备注等业务数据,最常用;2、整型Integer/Long:Integer为短整型,适用于小数值数字;Long为长整型,适配主键、数量、金额整数部分;3、浮点型Decimal/Double:专门存储金额、小数数据,财务、账务系统优先用Decimal,精度更高、无误差;4、日期时间型Date/Time/Datetime:分别存储日期、时间、完整年月日时分秒,用于单据时间、操作日志;5、布尔型Boolean:只有true/false,用于状态判断、开关控制;6、字符型Char:存储单个字符,用于简单标识判断。二、数据窗口核心高频题(PB面试重中之重)1、什么是数据窗口?它的核心作用是什么?详细答案:数据窗口是PB最核心、最独特的控件,是PB快速开发的核心底气。它是一个集数据查询、展示、编辑、校验、更新、排序、筛选、打印、导出于一体的复合控件。简单来说,所有和数据库数据展示、操作相关的功能,基本都可以通过数据窗口实现,无需手写大量底层代码。核心作用:1、自动关联数据库表,快速实现数据查询、新增、修改、删除;2、自带数据校验、非空判断、格式校验,减少业务代码报错;3、支持分页、排序、筛选、分组、合计、统计等报表功能;4、自带打印、导出Excel、PDF能力,适配报表、单据场景;5、支持缓存数据,可实现批量更新、回滚操作,保证数据一致性。2、数据窗口的几种常用风格(显示样式)有哪些?各自适用场景?详细答案:工作中最常用的5种风格:1、Grid网格风格:表格样式,行列整齐,支持手动拖动列宽、排序、筛选,适用于所有列表查询页面,是使用率最高的风格;2、Freeform自由格式:字段单独分行展示,标签+输入框样式,适用于新增、编辑、详情单据页面;3、Tabular列表风格:和Grid类似,但无网格线,样式更简洁,适合简单数据展示报表;4、Group分组风格:支持数据分组、分组统计、小计,适用于分类统计报表;5、Label标签风格:卡片式展示,适用于少量数据、标签打印场景。3、数据窗口常用函数及用法(面试必背)详细答案:1、SetTransObject(SQLCA):绑定数据库事务,让数据窗口关联数据库,所有查询更新前必须执行;2、Retrieve():执行数据查询,从数据库读取数据加载到数据窗口;可传参实现条件查询;3、Update():提交数据窗口的新增、修改、删除操作到数据库,返回1成功,返回-1失败;4、InsertRow(0):在数据窗口末尾新增一行空白数据行;5、DeleteRow(行号):删除指定行数据,0代表删除当前选中行;6、GetItemString/GetItemDecimal:读取指定行、指定列的数据,适配不同数据类型;7、SetItem():给指定行、指定列赋值;8、AcceptText():接收输入框编辑的内容,将界面输入同步到数据窗口缓存,更新前必须调用,否则会出现数据未生效问题;9、Reset():清空数据窗口所有数据,重置查询状态;10、Filter()/Sort():数据筛选、数据排序。4、数据窗口Update()失败,一般排查哪些问题?详细答案:工作中Update报错是最常见问题,按以下顺序排查,基本可以解决99%的问题:1、未执行AcceptText(),界面编辑的内容没有同步到数据窗口缓存,导致无数据可更新;2、数据窗口未设置更新属性(关键):需要指定可更新表、主键字段、可更新列,未配置则无法提交数据库;3、数据库字段约束问题:非空字段为空、唯一键重复、字段长度超出限制、数据类型不匹配;4、数据库事务未提交或异常:SQLCA事务未连接、连接断开,或者事务被锁;5、存在脏数据、并发冲突:其他用户修改了数据,导致当前数据版本不一致;6、SQL语句语法错误、触发器报错、数据库权限不足。排查技巧:执行Update后,通过SQLCA.SQLErrText获取详细报错信息,精准定位问题。5、数据窗口中RowFocusChanged和ItemChanged事件的区别?详细答案:1、RowFocusChanged:行焦点切换事件,点击切换不同数据行时触发,整行切换才会执行,常用于行切换时加载详情、联动子表格;2、ItemChanged:单元格内容修改并失去焦点时触发,只要单个字段内容修改就会执行,常用于字段实时校验、联动赋值、格式校验;核心区别:一个是整行切换触发,一个是单个字段修改触发。三、数据库与事务处理类1、PB数据库连接的完整步骤是什么?详细答案:标准五步法,项目通用:1、配置事务参数:给SQLCA的DBMS、ServerName、Database、UserId、Password等参数赋值;2、执行连接命令:CONNECTUSINGSQLCA;3、判断连接状态:通过SQLCA.SQLCode判断,0为连接成功,-1为失败;4、失败提示:连接失败时,通过SQLCA.SQLErrText打印报错信息;5、窗口数据窗口绑定事务:所有数据窗口执行SetTransObject(SQLCA)。2、PB中事务的提交和回滚怎么用?适用场景?详细答案:1、COMMITUSINGSQLCA;:事务提交,所有数据库操作执行成功后,手动提交,数据正式写入数据库;2、ROLLBACKUSINGSQLCA;:事务回滚,任意一步操作报错,立即回滚,撤销所有本次操作的数据,保证数据一致性;适用场景:多表联动操作、批量新增修改、账务收支、单据保存等需要保证数据完整性的场景,必须添加事务判断,避免出现部分数据成功、部分失败的脏数据问题。3、SQLCode、SQLRowCount、SQLErrText的作用?详细答案:1、SQLCode:执行状态码,判断数据库操作是否成功,0=成功,-1=失败,100=无数据;2、SQLRowCount:返回当前SQL操作影响的行数,可判断是否新增、修改、删除到数据;3、SQLErrText:返回数据库详细报错信息,是排查数据库问题的核心依据。四、窗口与控件、语法实战类1、PB窗口的常用事件及执行顺序?详细答案:打开窗口标准执行顺序:Open事件→OpenItem事件→Show事件→Activate事件关闭窗口顺序:CloseQuery事件→Close事件常用事件用途:1、Open:窗口初始化,加载数据、初始化控件、绑定参数,最常用;2、CloseQuery:窗口关闭前拦截,可判断是否允许关闭、提示保存未提交数据;3、Close:窗口关闭后释放资源、清空缓存数据。2、PB中打开窗口的两种方式及区别?详细答案:1、Open(窗口名):模态窗口,打开新窗口后,原窗口无法操作,必须关闭新窗口才能返回,适用于弹窗编辑、详情、提示窗口;2、OpenSheet(窗口名,父窗口):MDI多文档窗口,适用于主框架嵌套子窗口的系统布局,子窗口可自由切换、平铺、层叠,大部分后台管理系统用此方式。3、PB中传参的方式有哪些?详细答案:1、通过Message对象传参:打开窗口前给Message.Parm赋值,新窗口Open事件中接收,适合简单参数传递;2、通过窗口自定义实例变量传参:给目标窗口定义全局变量,打开窗口前直接赋值,支持多参数、复杂参数,项目最常用;3、通过全局变量传参:定义项目全局变量,所有窗口均可读写,适合全站通用参数(登录账号、部门ID等)。4、说说PB中静态变量、实例变量、全局变量的区别?详细答案:1、全局变量:整个项目所有窗口、对象均可访问,生命周期贯穿程序全程,适合存储登录信息、系统参数等公共数据,不宜过多使用,容易造成数据混乱;2、实例变量:隶属于某个窗口或对象,仅当前窗口内有效,窗口打开生效,窗口关闭销毁,适合当前页面专属参数;3、静态变量:定义在事件或函数内部,程序运行期间永久保留值,不会随事件结束而清空,适合记录累计次数、状态标记。五、面试实操场景题(面试官最爱问)1、页面新增单据,保存时如何防止重复提交?详细答案:工作中常用两种稳妥方案:1、按钮防重:点击保存按钮后,立即将按钮置灰禁用,事务提交完成(成功/失败)后再恢复可用,避免用户连续点击;2、数据库唯一校验:新增前根据单据编号、唯一关键字查询数据库,判断是否已存在相同数据,存在则直接提示重复,拒绝提交;3、数据库唯一索引:给核心唯一字段建立唯一索引,从数据库底层杜绝重复数据。2、数据窗口数据乱码、展示错位怎么解决?详细答案:1、乱码问题:统一数据库、PB程序、系统编码为GBK,检查数据库字符集,修正连接参数的编码配置;2、错位问题:固定列宽、设置字段自动适配、取消字段自动缩放,统一数据窗口字体和字号,适配不同分辨率电脑。3、PB程序卡顿、加载慢的常见原因和优化方式?详细答案:常见原因:1、Retrieve无分页,一次性查询上万条数据,加载压力大;2、SQL语句未加索引、查询条件模糊,查询效率低;3、窗口、控件重复初始化,冗余代码过多;4、未及时释放数据集、缓存堆积。优化方案:1、大数据列表开启分页查询,限制单次加载数据量;2、给查询字段、关联字段建立数据库索引,优化SQL语句;3、精简窗口初始化代码,避免重复查询、重复赋值;4、页面关闭

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论