|
Powerbuilder
编程经验点滴
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
北 京 天 顺 公 司 软 件 部 陈 俊 明 我在使用Powerbuilder 6.0时发现,在表单中使用一个数据窗口来对数据进行操作时,如果用鼠标对数据窗口进行连续、快速的点击,此时Windows95会弹出一个错误窗口,"Pb60.exe进行了非法操作,程序将被关闭"。后来我又发现,当数据窗口的‘clicked’事件和‘doubleclicked’事件中写入了代码时,这个错误信息并不出现。因些我想,如果在‘clicked’事件和‘doubleclicked’事件中并没有任何操作时,如何才能避免出现此错误窗口呢?首先,我猜想这可能是Powerbuilder的bug,在没有代码时,Powerbuilder并不生成相应的函数,当点击数据窗口时,Powerbuilder认为产生了一个‘clicked’或‘doubleclicked’事件,于是就去调用相应的函数,当没有代码时,此函数指针为一空指针,于是就产生了上述现象;而当这两个事件中有代码时,相应的函数被执行。由此我想,能不能在这两事件中加入一条注释,让Powerbuilder产生一个空的函数呢?事实证明,这个想法是对的。 在程序中,有时要用到BMP图象文件,比如人事系统中人员的相片、用扫描仪扫描进去的人事档案等等。在Powerbuilder中,没有直接的方法将BMP文件读入内存并显示。但Powerbuilder支持二进制文件的读写操作,可将BMP文件整个读入BLOB类型的变量中,方法如下:
在数据库的应用中,常遇到要将原来Foxpro数据库中的数据读入到大型数据库中的情况,对于没有Memo字段的.DBF文件,只要用Import系列函数,即可取得所要求的功能。但对于含有Memo字段的Foxpro数据库,此方法无效,出现“不能识别的文件类型”的错误信息。现将我的解决办法写下,如果您有什么更好的办法,请与我联系。 一.Foxpro中的.DBF文件格式如下: 1.文件头(32字节)
2.字段描述结构(32字节)
3.各种数据类型的存储方法 C、N、F用字符串存储,不够字段长时以空格填充;L用F表示False,T表示True;D用8位字符串表示,前四位为年,中两位为月,后两位为日;M用字符串表示的十进制数,表示在.FPT文件中的第几块 二.Foxpro中.FTP文件格式 1.文件头(8字节)
2.文件头(8字节)
块总长度(块数)计算=(有效数据长度+每块长度-1)/每块长度 三.使用PB对FoxproR 数据库进行存取 1.算法(文件读取)
2.实现(使用用户对象的方法来实现DBF文件到大型数据库的数据转移)
|