PB常用程序汇总2

来源:互联网 发布:java经典代码大全例子 编辑:程序博客网 时间:2024/04/28 04:44
//调用过程通用脚本
if dw_wp.rowcount() <= 0 then return
//变量定义
string ls_sql,ls_err_info
string ls_register_number,ls_accept_city,ls_department,ls_oper_person
integer li_err_code,li_apply_event
//变量赋值
ls_register_number = dw_wp.getitemstring(1,'register_number')
ls_accept_city = gs_citycode
li_apply_event = dw_wp.getitemnumber(1,'apply_event')
ls_department = gl_dealerid
ls_oper_person = gs_workerid
//连接数据库
af_connect()
//调用配号撤单过程
ls_sql = "execute bb_pstn_assign_no_repeal_p(?,?,?,?,?)"
declare proc_assign_no_repeal dynamic cursor for sqlsa ;
prepare sqlsa from :ls_sql ;
open dynamic proc_assign_no_repeal using :ls_register_number,:ls_accept_city,:li_apply_event,:ls_department,:ls_oper_person;
if sqlca.sqlcode = -1 then
ls_err_info = sqlca.sqlErrText
close proc_assign_no_repeal ;
Rollback;
Messagebox("错误信息1","执行异常!" + ls_err_info,stopSign!)
af_disconnect()
return
End if
fetch proc_assign_no_repeal into :li_err_code,:ls_err_info;
if li_err_code < 0 then
close proc_assign_no_repeal ;
Rollback;
Messagebox("错误信息2","执行异常!" + ls_err_info,stopSign!)
af_disconnect()
return
end if
close proc_assign_no_repeal ;
commit ;
//断开数据库
af_disconnect()
//撤单成功后打印工单
dw_wp.print()


//PB某些控件的中文显示问题
假如 PB 的 ListView 不能正常显示中文,则应该将ListView 的 FontCharSet 属性设置成其他类型。将
ListView 所在的对象 Export 成源码。在源码中找到ListView 定义部分,将 FontCharSet 属性该成
DefaultCharSet! 如果 PB 的其他控件也发生相应的现象时,同样调整一下它的FontCharSet 属性。一般
来说对于简体中文字体,在中文 WINDOWS 环境中应该设置成DefaultCharSet!。对显示中文有问题的控件
将它的 FontChatSet 属性强制设置成 DefaultCharSet! 应该没有问题。或者改变字体!!!


//PB6.5运行时动态连接库(Runtime Library)
PBVM60.DLL(PowerBuilder 虚拟机)(必需)
PBDWE60.DLL(DataWindow 引擎)(可选)
PBRTC60.DLL(Rich Text Control)(可选)
PBTRA60.DLL(DLL used for tracing db calls)(可选)
与所需连接的数据库的直连接口(Native Driver) 或 ODBC接口(ODBC Driver)
PBSYC60.DLL(连接Sybase 的直连接口)
PBO7360.DLL(连接Oracle7.3的直连接口)
所需连接的数据库的Client端(如Sybase的Open Client, Oracle 的SQL Net)
以上是Sybase公司的建议。
我的经验是,编译好的程序必须有pbdwe60.dll和pbvm60.dll才行。
另外,如果使用ODBC联结数据库则还需pbodb60.dll,如果使用的专用接口,则需对应数据库的DLL,
如Oracle7.3用PBO7360.DLL,Sybase用PBSYC60.DLL


//pb6.5升级到6.5.1后exe文件执行可能出现问题
重新拷贝SybaseShared下的pbvm60.dll(3.24M)代替未升级时pbvm60.dll(3.25M)就ok了!


//几个常用颜色
红:rgb(255,0,0) 醒目或改变作用
蓝:rgb(0,0,255) 注意作用
深绿:rgb(0,128,0) 提示作用


//SQL AnyWhere安装方法:
在安装PB65时的自定义安装中组件ODBC Databases Drives里的Sybase SQL anywhere 5.5.04 ,这只是
安装了PB组件的ODBC驱动程序,并未安装SQL ANYWHERE,如果你需要使用SQL Anywhere的管理工具,你
还得进行如下的操作:在正版PB6.5的第六张盘里,有一目录名是SQLANY5504,这里面就是SQL ANYWHERE
的安装盘了,运行SETUP即可。如果是盗版,那只好靠你自已去找了。 在安装目录下有一个SETUP.BMP,
上面有SQL ANHWERE字样。


//很多书上讲到FILE菜单中点CREATE DATABASE,怎么能让这个选项出来?
在pb第六张光碟(或使用D版第二张碟6sqlany5504),进入sqlany5504目录,安装sql anywhere 5.5,
默认安装路径为: C:Program FilesSybaseSQL Anywhere 5.0win32,安装完成以后,修改
autoexec.bat, 增加一行,用于将sqlanywhere的文件放到系统搜索路径中:
path %PATH%;C:Progra~1SybaseSQLAny~1.0win32
这样重新启动后,你就可以看到File菜单下多出了Create Database这一项。
特别说明:在...win32此目录下有一个很重要的文件,dbtl50t.dll,你可以做一个实验,进入
PB DataBase画板(不需要退出),然后切换到文件管理器中将dbtl50t.dll文件给改名,再切换回PB中,
点File菜单,你将会发现Create Database这一项又消失了。将dbtl50t.dll改名回来,回到PB中再点此
File菜单,一切又恢复正常。不过没有Create DataBase这一项都不是很重要,您还可以使用
Sybase Central来管理数据库,它才是Sql anywhere数据库的全面管理工具,可以建存贮过程,触发器。
(在"开始"->"程序"->"Sybase"->"Sql anywhere 5.0"下面,在硬盘中的执行文件名是scview.exe).

//不安装Oracle客户连接Oracle 8的方法
请将以下文件拷贝到运行文件所在目录
一、ODBC动态库 :
ctl3d32.dll msvcrt40.dll odbc16gt.dll odbc32.dll odbc32gt.dll odbccp32.dll odbccr32.dll odbcint.dll
二、建立EXTRA子目录,将MSVCRT.DLL文件拷贝到该子目录下
EXTRAMSVCRT.DLL
三、ORACLE动态库及配置文件
Tnsnames.ora CORE35O.DLL NASNSNT.DLL NAUNTSNT.DLL NCRNT.DLL Nlnt.dll NLSRTL32.DLL Nnfdnt.dll
NNFNNT.DLL NSNT.DLL NTNT.DLL NTTNT.DLL CIW32.DLL Ora73.dll OTRACE73.DLL Sqlnet.ora
Sqltnsnt.dll CORE35.DLL
四、PB动态库
pbvm70.dll pbdwe70.dll Pbo7370.dll PBO8470.DLL pbodb70.dll libjcc.dll


//不安装SQL7客户端,连接SQL7的方法:
只需要将SQL的DBNMPNTW.DLL、NTWDBLIB.DLL以及PB的PBVM60.DLL、PBDWE60.DLL拷贝到EXE文件所在目录
即可!


//设置对象的缺省属性
在用户界面的设计中,每添加一个对象如按钮,文本框等,PowerBuilder都会用缺省的字体,大小,颜色
等属性来定义对象。如果这不是我们所需要的属性,那么就需要逐个地去修改属性。可以通过将缺省的
属性修改为所需要的来简化这一操作。打开应用画笔,在属性中可以将缺省的字体,大小,颜色等属性
改成所需要的缺省属性。


//数据类型转换
数值类型之间的转换由系统自动完成,通常根据操作符转换到高一级精度参加运算.
数值类型精度优先级自高到低依次为:
double ← real ← decimal ← UnsignedLong,long ← UnsignedInteger
字符串到数值类型的转换函数:
integer(str),long(str),real(str),double(str),dec(str)
数值型到字符串的转换函数为:
string(number,format),number是任意一种数值类型,format指示转换后的格式,通常可以省略.


//代词
this:This代表窗口、用户对象、菜单、应用对象或控件本身,即代表正在为之编写事件处理程序的对象。
parent:Parent指当前控件所在的窗口。
ParentWindow:ParentWindow代表运行时菜单所在的窗口,该代词只能在菜单的事件处理程序中使用。
super:在编写控件或对象的子对象时,子对象中可以调用父对象的事件处理程序,程序中既可直接利用
父对象的名称调用它们,也可以使用Super代词来引用。例如,想调用父对象的Clicked事件处理程序时,
子对象中可以这样写: CALL Super::Clicked


//系统预定义的五个全局变量
sqlca,sqlda,sqlsa,error,message


//PowerBuilder中的颜色值和RGB值之间的关系如下:
color = R*256*256+G*256+B


//标准数据类型共有十四种
blob 二进制大对象,用于存储大量数据,例如图像、大文本等,如: blob{100} ib_test //长度100
boolean 布尔型,布尔型变量只有两个可能的值:TRUE或FALSE
char 或character,单个ASCII字符
date 日期,包括年(1000-3000)、月(01-12)、日(01-31)
datetime 日期及时间,仅用于访问数据库的DateTime型数据
dec 或decimal,带符号十进制数,最大18位精度,如: dec{2} ld_test //2位精度
double 带符号浮点数,15位有效数字
int 或integer,16位带符号整数
long 32位带符号整数
real 带符号浮点数,精度6位
string 字符串类型,用于存储任意的ASCII字符,长度为0到60,000(16位环境中),32位环境中长度
只受系统能力的限制。程序中直接写字符串时,用单引号(')或双引号(")将字符串括起来
缺省值空串("")
time 24小时制时间,包括小时(00~23)、分(00~59)、秒(00~59)以及秒的小数位(最多六位),
范围从00:00:00到23:59:59:999999
uint 或unsignedInteger,unsignedInt,16位无符号整数,范围从0到65535
ulong 或unsignedLong,32位无符号整数,范围从0到4,294,976,295
any 要想知道Any类型变量中保存数据的类型,可以使用函数ClassName()


//如何将照片存入数据库之中
定义一个Bolb 变量lb_file,将文件读到 lb_file,用 insertblob 或updateblob 就 OK 了


//变量的作用域
全局变量:在整个应用程序中都可访问,它的作用域是整个应用程序
实例变量:与对象相关联,只有在该对象的事件处理程序或函数中才能使用为该对象定义的实例变量。
实例变量在它所关联的对象被打开时创建,被关闭时消失
共享变量:是一种静态变量,这不仅意味着它所在的对象关闭后再次打开时共享变量依然保持对象关闭时
的值,而且还意味着同一个类多个实例中的同名共享变量保持相同的值
局部变量:在使用它的事件处理程序或函数中说明,其作用域仅限于说明它的程序段,在该程序段的任何
地方均可访问局部变量,但其它程序段都不能访问本程序段中的局部变量。运行程序后,进入
某个程序段时,系统自动为局部变量分配内存,退出程序段时,局部变量占用的内存被释放。


原创粉丝点击