PB数据库相关

本文详细介绍了PowerBuilder中数据库的使用,包括如何创建和修改数据表,设置表和字段的扩展属性,以及如何处理事务。同时讲解了动态SQL语句的四种类型,游标的使用步骤,以及事务对象在数据库交互中的作用。此外,还提到了PowerBuilder仓库表的维护和信息同步。
摘要由CSDN通过智能技术生成

----------------------------------------------------------------
数据库画板:
一张表定义了主键或者唯一索引,则可以在Results视窗中修改、增加、删除数据。

使用SQL语句创建数据表是最快捷的方式。但是,PB在创建数据表的同时,要在系统数据表中添加关于数据表的信息,表和字段的扩展属性都保存在系统表中。所以,直接使用SQL语句创建系统表将使系统表中的信息不完整。使用窗口菜单Design下的Synch Extended Attributes命令可以纠正这些不完整。实际上,系统表的不完整没有太多的副作用,尤其在不使用系统表编写程序时。

表的扩展属性:
在相关的属性页中设置相关的属性。在General属性页中可以设置表的注释信息,可以使用汉字。Data Font属性页用来定义从数据库中检索出来的数据的显示属性,在Database画板中操作数据或在数据窗口运行检索数据时。Heading Font属性页用来设置grid、tabular和n-up显示样式的数据窗口中Header的显示样式。Label Font属性页用来设置freeform显示样式的数据窗口中Label的显示样式。

字段的扩展属性:
在相应的属性页中设置相关的属性。General属性页用来设置字段的注释信息(出现在表的字段说明处,数据窗口对象的tag处)。Headers属性页用来设置freeform,显示样式的数据窗口中的Label,tabular,grid和n-up显示样式的数据窗口中的Header(在设置好label和heading两处的内容后,如填写字段的中文信息,在制作数据窗口对象后在相应的label或header中显示中文信息)。Display属性页用来设置字段的显示样式,包括字段中数据显示的宽度、高度、是否显示为图片、是否添加一定的标记(比如,是否添加¥表示当前数据为人民币)。Validation属性页用来设置校验规则,在数据窗口中录入的数据必须能够通过该校验规则才能被接收。比如,可以规定用户在Salary(工资)字段上输入的数据应该在某个范围内,如果不在该范围内,则不被接收。EditStyle属性页用来设置数据窗口中编辑该字段时的编辑风格,比如可以使用Radio button让用户编辑该字段的数据。

可以同时打开两个Columns(View->Columns),在不同的数据之间拷贝、粘贴字段的定义。

打印数据表的定义:Print Definition
输出数据表的定义语法:Export Syntax
查看数据表操作的SQL语法:Pending Syntax

打开相关表
在包含键的数据表中,经常需要打开所有和该键有依赖关系的数据表,在Objects Layout视窗中、数据表的键(主键或者外部键)图标上单击鼠标右键,使用弹出菜单中的Open Dependant Table(s)命令即可显示所有和该键有依赖关系的数据表。有依赖关系的数据窗口打开后,有依赖关系的键之间有线段联接,表示它们之间的依赖关系。当打开的数据表比较多时,可以在该视窗空白处单击鼠标右键,使用弹出菜单中的Arrange Tables来排列数据窗口的布局。

定义外部键时,注意在Ruels属性页选择删除策略

Results页面中右键Save Rows As...保存数据到外部
Rows->Import从外部导入数据

----------------------------------------------------------------
一个事务对象一次只能连接一个数据库,定义多个事务对象可以同时和对个数据库建立连接。
Transaction gt_sqlca
gt_sqlca = create transaction

----------------------------------------------------------------
事务
在PB中,对事务的操作是这样进行的:先定义开始一个事务(默认为SQLCA),然后对数据进行修改操作,这时如果提交(commit),这些修改就永久地保存下来;如果回退(rollback),数据库管理系统将放弃所有修改,回到开始事务时的状态。

----------------------------------------------------------------
事务对象包括15个参数:(5个用来返回操作的状态信息,其他10个用于设置和数据库连接时的参数)
SQLCode 是否成功标志,有三个可能的取值:0-成功,100-无数据,-1-错误(long)
SQLDBCode 数据库的错误代码(long)
SQLErrText 数据库的错误信息(string)
SQLNRows 涉及到的行数-不同的DBMS有所不同(long)
SQLReturnData DBMS指定的信息(string)

DBMS
Database
LogID
LogPass
ServerName
UserID
DBPass
Lock
DBParm

connect {using sqlca}; //连接数据库,连接后,可以根据sqlca.sqlcode的返回值判断是否正确连接了数据库

----------------------------------------------------------------
数据库操作:
选取:
select 字段名集合 into :变量集合 from 表名 where 条件表达式 {using 事务对象名};
select salary,name into :li_salary,:ls_name from salarys where name = :ls_nameusing sqlca;
插入:
insert into 表名(字段列表) values (值列表) {using 事务对象};
insert into dept(deptno,deptname,workers) values (:ls_deptno,"销售部",10);
删除:
delete from 表名 where 条件表达式{using 事务对象};
delete from 表名 where current of 游标名称;
delete from dept where workers = 10;
delete form dept where current of dept_cur;
修改:
u

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值