版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PB 考试试题1、 什么是窗口或控件的消息队列控件(包括窗口)都可以响应一系列的不同事件,当多个事件发生时,这些事件会根 据触发先后或者触发方式(比如 Trigger, Post )不一样,建立一个事件的消息队列来依次执 行。PB 中的消息队列和 VC 中的消息队列是一样的,只是 VC 中允许显式的处理,而 PB 则基 本上自动处理了,不过也预留了二部分的接口,一是预定的一些方法名 ,如 close(),open(),size() 等,这些基本上对应了 VC 中的 WM_CLOSE,WM_CREATE,WM_SIZE,而还有一类是要自定 义的,方法就是在 PB 中新建一个事件,然后在事件 ID
2、 列表中选择一个 ID 号,就可以处理 相对应的事件。2、窗口和控件的区别是什么?窗口是应用程序与用户交流的主要界面,用它可以显示系统的有关信息,响应用户的鼠 标和键盘输入等等;控件是对数据和方法的封装,它可以有自己的属性和方法。属性是控件 数据的简单访问者;方法则是控件的一些简单而可见的功能。3、什么是上下文?一种属性的有序序列,它们为驻留在环境内的对象定义环境。在对象的激活过程 中创建上下文,对象被配置为要求某些自动服务,如同步、事务、实时激活、安全性 等等。多个对象可以存留在一个上下文内。也有根据上下文理解意思的意思。上下文对象描述的是应用程序执行的上下文信息,包括当前版本、是否在PB
3、环境内按 window 插件或 ActiveX 控件运行等。 使用上下文信息,你可以修改显示信息和应用程序行 为。4、什么是上下文服务?是为上下文所标置的对象配置相应的同步、事务、实时激活、安全性等,并且为其 提供一个相应的软件运行环境。5、在建表的时候忘了添加列的唯一性指定,后来发现错误了,想加上去,结果提示有一个两行 是不唯一的,问如何知道是哪两行不唯一,使得出现错误?对表的所有字段。6、什么叫继承?PB 的非可视对象能否实现继承?继承就是面向对象中类与类之间的一种关系,继承的类称为子类,派生类,二被继承的 类称之为父类、基类或超类。通过继承,使子类具有与父类相同的方法与和属性,同时子类
4、也可以加入新的属性和方法或者修改父类的属性和方法简历建立新的类层次。PB 的非可视对象能实现继承,也能实现相应的代码重用。7、PB 自定义对象中可视对象和非可视对象的区别?使用中两种对象都需要声明吗?非可视对象是一个没有可视化对象的特殊处理对象。在此对象中不存在类似于数据窗 口、按钮、列表框等可视对象,但它拥有自已的数据,以及处理这些数据的函数和事件。这 些数据、函数和事件可以被认为定义了非可视对象的接口,我们通过接口来与非可视对象进 行通信,也可以直接访问它的公有数据;可视对象是指可以是在舞台上显示出来的任何实例(如按钮、电影剪辑、Loader、UI 控件等),这些都是从 DisplayOb
5、ject 派生的子类。可视对象不需要声明,非可视对象需要声明。8、Datawindow 中每页打印固定行,如何设置?1 增 加 一 个 计 算 列 , 此 计 算 列 必 须 放 在 Detail 段 , Expression 中 输 入 : ceiling(getrow()/20)这里 20 还可以用全局函数取代,这样可以允许用户任意设置每页打印多少行。 2 定义分组,选择菜单 Rows-Create Group. 按计算列字段分组,并一定将 checkbox-New Page On Group Break 选中。3 将此计算列设为不可视。9、使用 Update 函数保存数据之前,通常要判断
6、数据窗口中是否有主键重复的数据,如果有 重复则不允许提交。如果我们不编写程序判断,数据窗口本身业可以进行校验,但是显示的 都是英文的提示信息。为此,我们通常在 DBError 事件中返回 1 以屏蔽该英文的提示信息, 然后编写程序进行主键重复判断。进行主键重复判断,实现的方法很多,效率高的不多。这里介绍的是效率非常高的一种方法。 该方法的思路是,通过过滤,将只显示过一次的数据虑除,如果过滤之后数据窗口中还有数 据,则说明有重复数据,代码如何实现?string ls_fieldnamelong ll_rcls_fieldname = dept_id ll_rc = dw_1.RowCount()
7、dw_1.SetFilter( )dw_1.Filter()dw_1.SetSort(ls_fieldname + A )dw_1.Sort()dw_1.SetFilter(ls_fieldname + + ls_fieldname + -1 or GetRow() =1 )dw_1.Filter()if dw_1.RowCount() ll_rc thenMessageBox( 注意 ,ls_fieldname + 列中存在重复的数据! ,StopSign!)end if10、请问一下两种代码哪种有信息框提示,为什么?(1)String ls_name,ls_tempSetNull(ls_t
8、emp)Ls_name = 张三 Ls_name = ls_name + ls_tempIf IsNull(ls_name) Then MessageBox( 提示 , 空值! )(2)String ls_name,ls_tempSetNull(ls_temp)Ls_name = 张三 If IsNull(ls_ temp) Then MessageBox( 提示 ,ls_name + ls_temp)第(1)种代码有信息提示框;因为函数 MessageBox ()经常用来显示一定的信息,和用 户交互时经常使用。如果要显示的信息是 NULL 时,提示窗口不会显示。第(2)种中在 Message
9、Box()函数中直接添加了字符串,所以没有任何信息框提示。 11、取得数据窗口中字段类型的语法如何写?Describe()函数可以得到数据窗口的多项属性值,用它实现如下:long ll_column_countlong ll_istring ls_column 列名string ls_column_text text 的名字得到数据窗口的总列数ll_column_count = long(dw_1.Describe(DataWindow.Column.Count)循环依次读取for ll_i = 1 to ll_column_countls_columnll_i = dw_1.Describe
10、(string(ll_i) .Name)ls_column_textll_i = dw_1.Describe(ls_columnll_i _t.text)next12、一个数据窗口中有以下数据源d, department.dept_name,employ_id, employee.emp_fname,employee.emp_lname FROM department, employee WHERE在创建数据窗口时设置为 Department 表可修改更新,给出一段需要具有修改更新表 employee 的代码?UPDATE department.dept_id, department.dept
11、_name,employee.emp_id, employee.emp_fname,SET department, employee WHERE13、用数据窗口代替 SQL 语句通常,为了获得某些数据,采用数据窗口和 SQL 语句都是可行的,例:为了检索电话 档案中的用户名,可以利用 SQL 语句,将所有的数据检索到一个多行编辑中,也可以 检索到一个数据窗口中。如使用第一种方法:方法一首先定义一个游标:DECLARE CUR CURSOR FORSELECT DA_DH . HM FROM DA_DH ;然后可以:string stxt,stint liopen curdo li = li +
12、 1fetch curinto :stxtli ;st=st+stxtli + rn loop while stxtli close cur;mle_1.txt = st方法二:dw_1.settransobject(sqlca)dw_1.retrieve()请问哪种方法效率高?方法二效率高。14、连库操作是非常影响执行速度的操作. 因此在程序中,一旦与数据库连接后就应当尽量 保持与数据库的连接 , 减少连接数据库的次数 .PowerBuilder 提供里两个函数来建立数 据窗口与事务对象的连接:SetTrans()SetTransObject()请问哪种执行速度更快?为什么?这两个函数有一个
13、重要的区别就是在使用 SetTrans()函数时,用户不需做任何数据初始 化或事务对象初始化工作;用户只需要在这里填充一个事务对象,PB 就会自动完成对该事 物对象的初始化以及和数据库连接的工作。而使用 SetTransObject()函数时,用户必须首先 把所用的事务对象连接到数据库上,但是使用 SetTransObject()函数可以为数据库维持一个 开放性的连接,因此在一般情况下,为了提高效率,总是采用 SetTransObject()函数,所以 SetTransObject()函数执行速度更快。15、将数据窗口中的电话号码存放在一个数组中.请比较下面两中方法.方法一:string da
14、_dhlong ll,Ill = dw_1.rowcount()for i = ll to 1 stet 1da_dhi = dw_1.getitemstring(i, dhhm )next方法二:string da_dhda_dh = dw_1.object.dhhm.current哪种方法执行速度更快?方法二速度更快。16、字段使用了下拉列表框、下拉数据窗口和单选按钮等有代码表的编辑风格时,在数据窗 口控件上显示的值和字段实际得到的值并不相同,使用函数 GetItemX 只能读取这样的字段 的真实取值,而不是用户看到的值。如何才能读取得到用户看到的值?可以使用函数 LookUpDispla
15、y。LookUpDisplay 函数不能直接从 PowerScript 调用,可以在 Describe 中和 Evaluate 函数配合使用。因为函数 Lookupdisplay 不能指定对哪行数据进行操作,它的参数只有一 个字段名称,所以必须和 Evaluate 函数配合使用。该函数的语法是:Lookupdisplay(columnname)其中,参数 columnname 是字段的名称,而不是一个字符串。函数执行错误则返回空字符串。17、如何将字符串”语文,数学,英语,物理”中逗号之间的内容,用一段代码一项一项写到 一个多行编辑框 mle_list 中?#include #include int main()char charArray=语文,数学,英语,物理;char *tokenPtr;coutThe string to be tokenized is:ncharArraynnThe tokens are:n;tokenPtr=strtok(charArray, ,);while(tok
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025内蒙古蒙科产业技术创新有限公司第二批招聘8人笔试历年典型考点题库附带答案详解
- 2026年夹心糖果行业分析报告及未来发展趋势报告
- 2026年CD架行业分析报告及未来发展趋势报告
- 应急演练教育体系构建
- 病理学疾病诊断流程
- 2026年环链电动葫芦行业分析报告及未来发展趋势报告
- 2026年节能环保厨房设备行业分析报告及未来发展趋势报告
- 风电吊装组织方案
- 2026年软磁材料行业分析报告及未来发展趋势报告
- 施工机械进场验收方案
- 2026年同等学力申硕英语模拟卷
- 摩根士丹利 -半导体:中国AI加速器-谁有望胜出 China's AI Accelerators – Who's Poised to Win
- 2026辽宁沈阳汽车集团有限公司所属企业华亿安(沈阳)置业有限公司下属子公司招聘5人笔试历年参考题库附带答案详解
- 1到六年级美术知识点总汇
- 中考英语必背作文范文
- 2024年新改版苏教版六年级下册科学全册精编知识点
- 宗教礼仪讲解
- 皖2015s209 混凝土砌块式排水检查井
- 复杂控制系统-1
- 2022年大英县国企招聘考试真题及答案
- 碎渣机检修工艺及质量标准
评论
0/150
提交评论