【技巧】PowerBuilder --- 曾经的“玩物”

本文总结了作者在PowerBuilder中的数据库开发经验,包括表的创建与删除、数据窗口使用技巧、存储过程调用及返回值处理等内容,并分享了解决死锁问题的方法。

曾经大学自学过,两年前实际工作中开发过,今后,完全使用其来开发的机会基本上不会有了,但它作为数据库的一种,可能还会在一些行业中遇到的......作为回忆,总结一下以前的经验呗:

 

 

通过代码找出WINDOWS的我的文档的目录,从网上找到了两种方法:
1. 通过API,“SHGetSpecialFolderLocation”和“SHGetFromIDList”两个方法。
2. 通过注册表,"/HKCU//Software//Microsoft//Windows//CurrentVersion//Explorer//Shell Folders/”下的personal键的值,这里是当前用户“我的文档”路径,不管是否自己改过,其它的键都是操作系统目录下那个文档路径。
另外,操作系统目录下的“我的文档”路径还可以用%homepath%来表示。


 

1. PB中创建和删除表都不能在事务内,而且不能主动提交,只能设置AUTOCOMMIT=TRUE,之后再设置为FALSE;那么,其它SQL语言呢?

2. DATAWINDOW中对应的列从数据库中取出是什么类型,设置值时,就要设置对应的类型

3. GetItemStatus的参数DWBuffer好像没有Delete的选项,返回的值也不知道是什么

4. transaction.sqlcode:0(normal),100(no record),-1(error) 如果对象为不存在,PB中居然不能表示为NULL,只能写作“STRING(XXX)=“””? 5.终于发发现问题了,原来是“事务”搞的鬼,在关闭事件的时候,因为是“回滚”的操作,所以用了“rollback” 打开事件(OPEN)只用了一次,但显示事件(SHOW)用了很多次,根据情况发生该事件


 

 

1. 在PB中执行存储过程后,取出的内容应该是存储过程中从直接表中SELECT的字段值;将这些值循环取完后,再一次取出的就是存储过程的返回值(如果还有OUPUT参数,就在返回值变量后接着写上)。参考如下:

http://www.sybase.com/detail?id=44452

2. 表被“死锁”了,两个存储过程查看进程状态:sp_who, sp_lock。找出其中的ID,再与sysobjects表对照查找出相应的被锁的表---MSSQL中是SP_WHO2

3. 游标操作中,FETCH INTO 的变量,在游标关闭或重新FETCH之前不能改变其值? ---反正在MSSQL中是可以的

4. 全局变量:

CURSOR的FETCH后返回,@@sqlstatus

影响的行数,@@rowcount

事务执行后返回,@@transtate

数据表等更新后返回,@@error

其它全局变量呢?

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值