
Power Builder
MakeToday
这个作者很懒,什么都没留下…
展开
-
数据库表字段变动时pb 需做的改动
使用pb 时, 当数据库表 增加字段或者修改字段的长度 类型等变更 ,pb中所有涉及该表该字段的数据窗口需要重新生成一遍。原创 2013-05-31 10:59:06 · 1344 阅读 · 1 评论 -
pfc_save 的误解
以前做程序和看pfc实例以为执行pfc_save时,就自动提交了。而且看也没有发现问题。原来只是在单机上测试看不来。这样不提交被更改的表会一直被锁定,如果是网络版就会影响其它用户的操作。pfc_save时一定要判断结果为1在手动提交或回滚。(有可能不用回滚,因为数据窗口的update可以采用的是保存缓冲点的失败后自动撤消缓冲点的语句和资源)原创 2007-09-15 13:13:00 · 1512 阅读 · 0 评论 -
sql server 所需的动态库
dbmssocn.dlldbnetlib.dlldbnmpntw.dllntwdblib.dllwindbvr.exe原创 2007-06-09 19:02:00 · 1033 阅读 · 0 评论 -
有时保存成功并不见得真正保存成功
有用pb 更新 asa数据库时,发现更新有外键的数据时,显示更新成功。但断开联接时再重新进入时,发现更改并没有成功.原来是asa的一些约束条件都是可以选择是执行时检查,还是提交时检查。默认是提交时检查。这样语句一定会执行成功了。而进行提交时,有的数据由于外键的关系会自动的被撤消其更改。但是为什么,我更改完了立即提交了。而且再重新进入时,就发现是删除的。为什么断开当前的连接,重新连接后才能看见呢。这原创 2007-09-03 16:46:00 · 1207 阅读 · 0 评论 -
数组问题,多维数组赋初值无效,实际上并没有赋上值
数组分为二维和多维数组,二维数据可以初始化,多维数组初始后无效,即初始化无效尽量不要采用多维数组,多维数组向一维数组转换公式,可以人右往左依次看作是二维数组进行转换二维转换公式 ( m2 -1) * m1长度+m1行如果从零开始的,就不用再减1另外,在用数组做参数时,传递时注意写法不要写成 a[3] ,这种表示传递的是数组的元素。原创 2007-06-07 22:38:00 · 2025 阅读 · 0 评论 -
急急忙忙的测试一定会有一些问题发现不了的。
花了半天的时间,写的小程序给客户用,结果测试的时候好用结果到了客户那却不怎么好用了。这就说明了,测试不全面一定要按实际需要模拟测试。原创 2007-09-03 16:49:00 · 805 阅读 · 0 评论 -
多态性,重载的感悟
面向对象的知识忘得差不多。这几天写pb程序时,使用pfc框架时发现了几个问题使我对面向对象的东西有所感悟。以前学习时只是从概念上,理论上来理解。从来都没有真正用过。通过pfc的学习我对多态,重载加深了认识1.多态 :文件服务 f_setfilesrv 的父类n_cst_filesrv中定义所有操作和属性派生类:n_cst_filesrvwin32 ,n_cst_filesrvsol2 在父类中实现原创 2007-08-27 11:20:00 · 904 阅读 · 0 评论 -
数据库操作语句执行失败后,不一定要rollback
见标题前提条件 autocommit=false 融离级别为read commit ,不使用语句加锁当一条词句出错后,它本身就没有更改数据,它没有更改数据就没有锁定资源,所以不要rollback这只是针对一条语句来说的,但是多条语句就需要rollback 了。因为由可能前面的数据已经执行了更改,但是后面的却失败了。所以要撤消掉前面的结果,并释放资源。当设置autocommit=false 时,原创 2007-08-21 09:38:00 · 3016 阅读 · 0 评论 -
sqlcode返回值说明
sqlcode 返回值 0 -1 100对于select execute 存储过程 执行成功时返回 0或100 (0 有数据返回,100无数据返回)-1 表示执行sql 语句失败(包括存储过程)具体错误信息:sqldbcode sqlerrtext另外 : DELETE, FETCH, and UPDATE 返回0时,需求确认 sqlnrows 返回0只能说明语句执行成功sqldbc原创 2007-08-21 09:25:00 · 3655 阅读 · 0 评论 -
try catch
TRY trystatements CATCH ( ThrowableType1 exIdentifier1 ) catchstatements1 CATCH ( ThrowableType2 exIdentifier2 ) catchstatements2 ... CATCH ( ThrowableTypeN exIdentifierN ) catchstatements翻译 2007-05-08 13:46:00 · 1304 阅读 · 0 评论 -
pb调用vc dll约定
VC PB dll VC6中的函数调用约定: 调用约定 堆栈清除 参数传递 __cdecl 调用者 从右到左,通过堆栈传递 __stdcall 函数体 从右到左,通过堆栈传递 __fastcall 函数体 从右到左,优先使用寄存器(ECX,EDX)转载 2007-04-17 08:59:00 · 6397 阅读 · 1 评论 -
5ms错误
问题:做两件事情1,更改帐单号2,预付押金由于付押金时,先读取帐单号,由于录入速度或其它原因可能会造成帐单号在录入中已经改变,这样不做判断就会造成严重的后果. 考虑某些问题时应该考虑它是否能做成事务来处理.要多注意一些非正常因素.原创 2007-04-14 20:25:00 · 972 阅读 · 0 评论 -
setdwcache
gnv_app.of_setdwcache(true)string ls_sqlls_sql=SELECT "customer"."id","customer"."fname","customer"."lname","customer"."address","customer"."city","customer"."state","customer"."zip","customer"."phon原创 2007-03-26 11:58:00 · 737 阅读 · 0 评论 -
pb 操作注册表
RegistrySet ( key, valuename, valuetype, value )RegString! 字符串 REG_SZ RegExpandString! 可扩充字符串中可以包括环境变量 REG_EXPAND_SZRegBinary! 二进制数字 REG_BINARYReguLong! DWORD值 RegMultiString! 多原创 2007-06-18 20:37:00 · 1622 阅读 · 0 评论 -
注意了,菜单也是有实例变量
通过对pfc研究,发现原来菜单里也可以定义变量 。只不过在默认的菜单画板中没有变量项的标签,可以在pb的菜单中调用实例变量的菜单进行定义变量来应对特殊的需要。原创 2007-03-24 08:10:00 · 814 阅读 · 0 评论 -
多表更新服务
多表更新服务 multitabel启用多表服务 u_dw.of_setmultitabel(true)注册需要更新的表 并指定更新表的主键inv_multitable.of_addtoupdate(表,列数组)resize服务启用服务 of_setresize(true)注册要启要服务的控件及方法inv_resize.of_register(control,缩放方式)scale 缩放 改变位置原创 2007-03-21 14:27:00 · 1073 阅读 · 0 评论 -
树型结构的遍历
树型结构遍历 作者:郭宝利 来源:原创 日期:2004.06.27 树型结构的遍历通常使用递归程序来实现,所以本节给出一个按照内容查找,对树型结构进行遍历,如果和要查找的内容相等,则返回该节点的Handle。函数如下:/*---------------------------------------转载 2007-01-26 17:20:00 · 1441 阅读 · 0 评论 -
主从表的关系与导入导出的关系
1.主从表设外键约束后,当从表中数据被导出(被删除)后,主表的相对应的数据也被删除这时从表把原来的数据再导入(插入)原表,会被外銉约束拒绝导入.对于这种规则可以使用触发器来判断插入规则,在从表中不需要再建立外銉建立约束的好外,保证数据的完整性,坏处是影响执行的效率原创 2007-06-16 16:49:00 · 2076 阅读 · 1 评论 -
对pbsocket认识
global variablesWinSock wsevent:openws = create WinSock //提供常数和函数winsock_errorevent:closedestroy wssServer = create SocketStream //数据流传输模式:自动创建套接字 sServer.bind(ulAddr,iPort) sServer.liste原创 2007-09-13 22:04:00 · 2711 阅读 · 0 评论 -
dbcancel,reset,reselectrow
从库中重新检索数据,并更新当前行的显示和状态This statement reselects the clicked row if the update is not successful:更新失败后,重前检索该数据IF dw_emp.Update( ) dw_emp.ReselectRow(dw_emp.GetClickedRow())END IF reset 清除数据窗口中的所翻译 2007-09-18 11:05:00 · 2163 阅读 · 0 评论 -
复合报表出现空白页
问题描述 pb 复合报表存在多页时,第1页可以有数据,第2页之后就显示空白了.但打印时却是正常的可以看到数据.解决办法: 将报表设置成预览模式就可以看到全部数据了. dw_1.object.datawindow.print.preview = 'yes' 报表的单位是可以选的 默认是 pb 单位 还有英寸 厘米等原创 2012-11-25 19:20:20 · 1560 阅读 · 0 评论 -
pb 调用dll时关于指针参数处理
声明dll调用时如果有参数是 指针类型时 定义时需要在相应类型前面加上ref 表示传递的地址而不内容 ref +简单类型 复杂类型 会自动将其地址复制一份进行传递 对简单类型参数是否被ref修饰的区别在于:被修饰了的参数将以地址方式传值;未被修饰的参数将以拷贝方式传值。对复杂类型参数是否被ref修饰的区别是相似的。由于复杂类型参数都以地址方式传值,因而不被修饰原创 2010-03-13 18:52:00 · 7338 阅读 · 0 评论 -
setfilter后retrieve结果
setfilter设置过滤条件后,再检索retrieve时,检索结果将会是过滤后的结果原创 2009-06-17 14:10:00 · 1086 阅读 · 0 评论 -
pb自定义纸张(连续走纸)
Pb中定制打印页长实现连续打印 pb与打印机的通讯使用ASCII码进行,其中标准ASCII码包括可打印字符及非打印字符(控制码),打印机使用控制码来定制打印机。大多数打印机指令使用控制码escape作为其指令序列的第一个序列码。 设置换行量(行距)1/8 英寸ASCII码 ESC 0十进制码 27 48 设置以行为单位的页长ASCII码 ESC C n原创 2009-05-07 19:57:00 · 8188 阅读 · 0 评论 -
继承对象的执行调用
当程序调用一个新的对象时,系统要到各个.PBD文件中查找这个对象,如果这个对象是由其它对象继承而来,那么其所有的祖先对象都需要装入内存。如应用软件十分庞大,这种查找和装入显然是十分消耗时间的。原创 2009-03-17 14:12:00 · 816 阅读 · 0 评论 -
祖先类PowerObject
PowerBuilder是一种面向对象的开发工具,除SystemFunctions类外,所有对象均由祖先类PowerObject继承而来。PowerObject有九种子类,窗口内所有控件均继承自PowerObject/GraphicObject/WindowObject,该类派生出两种子类:DrawObject和DragObject。DrawObject类是画图对象,属于该类的控件有:转载 2009-03-17 14:03:00 · 2777 阅读 · 0 评论 -
取计算列值
10 楼dawugui(潇洒老乌龟)回复于 2006-08-05 21:39:26 得分 00150 -- 数据窗口中各项指标的获取方法 http://www.51pb.com/viewthread.php?tid=1005&extra=page%3D6 1、得到当前鼠标所指对象所在的带区 string str_band str_band转载 2008-12-08 18:33:00 · 1724 阅读 · 0 评论 -
货币数据类型
人民币单位分别是元、角、分、厘整数。0000 整数和四位小数组成在pb中用dec{4} 一般用2位就够了。原创 2008-12-09 09:24:00 · 2028 阅读 · 0 评论 -
pb 不支持快速逻辑运算法
if row>0 and dw_1.getitemstring(row,col)=1 then.....出错 无效的行或列原创 2008-11-09 19:09:00 · 831 阅读 · 0 评论 -
Pb 事件发生顺序
窗体中控件constructor->窗体open->窗体close ->控件 destructor自定义用户对象 父对象 constructor-子constructor-父destructor-子destructorOpen事件结束后显示窗体,窗体打开时调整控件时一定要在open事件后调整可以使用 post 事件或函数来实现原创 2008-11-04 18:51:00 · 2319 阅读 · 0 评论 -
pb sqlcode取值意义
执行存储过程 0 成功有记录集 100 成功没有数据返回 -1 出错 错误信息sqlerrtext 错误代码 sqldbcodeupdate 语句. 0 sqlnrows 更新的行数 -1 出错insert 0 sqlnrow原创 2008-09-28 11:51:00 · 3838 阅读 · 0 评论 -
重新构造datawindow 的 sql select 语句
1.setsqlselect()支持一般select 语句,但如果dw已经定义了检索,使用会失败应使用 DataWindow.Table.Select 属性,但赋值时要注意使用this.modify("DataWindow.Table.Select="+is_orgisql+"")语句,is_orgisql中如果含有单引号(有字符表达式)它会认为该引号为字符串结束,将忽略后面的语句,语句就会出原创 2008-09-15 21:44:00 · 1391 阅读 · 0 评论 -
registerget注册表操作
registerget读一个不存在键的值的返回-1,但读一个键的默认值时(无设置默认值)也将返回假值.所有说判断一个键是否存在要读该键的具体键名称的值.原创 2008-05-19 22:13:00 · 896 阅读 · 0 评论 -
报表总结
grid 报表 自动带网格线,可以通过display 属性让其不显示线上面的控件默认是band的,位置是固定的。只有将将layer设为foreground它可以改变大小跨越多个格(覆盖其后面的内容)layer=band的 控件的坐标是相对于当前区的相对坐标(当前区为0,0)。layer=forground控件的坐标是绝对坐标。需要自己计算其正确的位置。其中每个区的内容都是重复出现的。header原创 2008-03-17 19:19:00 · 1043 阅读 · 0 评论 -
datastore DataWindow.detail.Height属性不是实时的
datastore 的DataWindow.detail.Height 属性是初始时的值,当行数发生变化时,他的性并不会自动改变,datawindow的值会不会这样就不知道了。所以要想知道最终高度就是手动计算,一共多少行,每行多高。存在一行显示不下自动为两行显示的数据(它点用的两行的高度小于实际两行的高度).在datastore的关于位置的表达式可能无效。原创 2007-09-25 11:34:00 · 1254 阅读 · 0 评论 -
日期的误判
原先一直以为日期函数会对yyyymmdd的格式做为日期来对特。结果今天却发现了这个问题1。 isdate(20060606) 返回值为 false2.date(20060606) 返回值为 1900-01-01 以为非日期结果导致程序转向错误。原创 2007-09-18 19:56:00 · 768 阅读 · 0 评论 -
getitemany
摘自 达通兴电脑科技公司制作 函数GetItemAny如下:/****************************************************************funtion GetItemAny(datawindow ids_ds,long al_row,string as_Column)*参数:datawindow ids_ds by value*long a转载 2007-01-26 16:39:00 · 1074 阅读 · 0 评论 -
parent关键字研究
parent 父对象的引用。如何确定一个控件的父对象呢?问题: commandbuttona ->commandbuttonb 将buttonb放在一个窗口上,它的父对象是当前窗口而不是buttona 如果一个窗体继承这个窗体,则在子窗体中这个按钮的父对象还是子窗体。(而且子窗体和父窗体句柄是相同的)也就是一个控件的载体是它的父对象。 如把这个按钮放在tab里tab就是它的父对象.原创 2007-03-19 09:56:00 · 1136 阅读 · 0 评论 -
帮助文件的调用
2. 制作目录表、索引表按照内容的相互关系及次序建立目录表,一个目录项对应一个帮助主题,一个帮助主题可对应一个HTML页;设计包含关键字的索引表让用户更快地获得所需的信息,一个关键字可对应一个HTML页。将设计好的HTML页与帮助主题目录项及关键字索引建立对应关系。一般制作应用程序帮助系统时可根据程序的菜单来组织目录表。主菜单对应目录,而将子菜单对应子目录,叶菜单对应目录项。可给每一个菜单项一个对原创 2007-03-16 09:31:00 · 723 阅读 · 0 评论 -
如何沟通
有明确的目标(沟通的目的),传递信息(思想、情感),最后得到反馈信息(沟通的结果)。其中如果传递的信息只需要的是口头语言即可。沟通情感需要肢体语言。开始 我们这次沟通的目的...........................结束 通过这次谈话沟通我们达成....共识沟通过程 说->倾听->提问 一定是听和说结合交替进行原创 2006-03-02 08:56:00 · 876 阅读 · 0 评论