欢迎来到天天文库
浏览记录
ID:14173942
大小:41.00 KB
页数:11页
时间:2018-07-26
《[pb]安全与完整性的数据保存powerbuilder和sql server的应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、[PB]安全与完整性的数据保存PowerBuilder和SQLServer的应用安全与完整性的数据保存PowerBuilder和SQLServer的应用----当今,客户/服务(Client/Server)和因特网/内部网(Internet/Intranet)体系在软件开发和应用领域非常流行,同时以PowerBuilder和MicrosoftSQLServer6.5或SybaseSQLServerSystem11(Microsoft和Sybase的SQLServer在本文中都简称SQLServer)作为Client/Server体系结构的前台和后台开发工具也被广泛
2、的应用。然而在应用过程中,由于PowerBuilder和SQLServer基本上是两个独立的过程,因此要使它们两者紧密配合起来在事务处理过程中保证系统和数据的安全与完整性是困难的,这也就是说当通过PowerBuilder来更新一组SQLServer的表时,要保证在任何情形下,系统都不会发生数据表被部分保存、或者出现SQLServer将被处理数据自动回退(Rollback)却不把该过程通知PowerBuilder而引导其用户以为已经成功的保存了数据的错误,同时也不会发生当前数据被锁和事务日志(TransactionLog)满的系统错误,作上述的保证是很困难的。在此我
3、们将讨论使用PowerBuilder和SQLServer开发Client/Server体系类的应用软件时要保证系统和数据的安全与完整性所应注意的一些问题。----PowerBuilder一般是通过数据窗口(Datawindow)来产生SQLStatement(例如:Insert、Update或Delete)或调用存储过程(StoredProcedure)并提交给SQLServer进行事务(Transaction)处理,同时PowerBuilder也可直接运用植入的(Embedded)SQL语句、调用(Call)StoredProcedure或动态的(Dynamic
4、)SQL来完成Transaction处理。不论是PowerBuilder通过Datawindow产生SQLStatement或调用StoredProcedure,还是直接运用EmbeddedSQL、StoredProcedure或DynamicSQL等,系统都是将单一或一组的SQLStatement提交给SQLServer来运作。----SQLServer接收SQLStatement后,假设被接收SQLStatement对一个表运作,但其运作也可能启动表中的触发器(Trigger)并且此Trigger也可能会对其它表产生运作、或启动数个StoredProcedur
5、e或其它Trigger。SQLServer处理完接收的SQLStatement后会返回结果给PowerBuilder,PowerBuilder应根据SQLServer返回的结果作出相应的‘提交Commit)’或‘回退(Rollback)’操作或者提示,这时可能会出现几种情形:----1当SQLServer因出错而自动Rollback后,PowerBuilder如何了解错误且立即告知用户Update失败;----2当SQLServer对Transaction处理结束且返回结果时,PowerBuilder要判断其结果是否符合要求,并进行相应的Commit或Roll
6、back操作或者提示;----3若某一客户端的系统发生故障或其使用者操作失误时,PowerBuilder程序员如何处理SQLServer的数据锁或TransactionLog满的问题。----在以上PowerBuilder处理数据的过程中,它的AutoCommit属性值的设定是很关键的,因此我们先介绍AutoCommit。如何正确使用AutoCommit属性----SQLServer是通过BeginTran语句来控制同一个批次的Transaction中的数个SQLStatement及其处理的数据,通过CommitTran和RollbackTran语句来保证它们被
7、全部处理成功后才提交、或者当该组中任一个或多个处理失败时被全部回退并释放被独占的所有数据,这就不会破坏数据处理的安全与完整性,SQLServer中的BeginTran语句在PowerBuilder中对应的是AutoCommit属性,当AutoCommit的值为True时,SQLServer会在PowerBuilder执行任何一个SQL命令(例如:Update()或EmbeddedSQL等)后立即控制当前的事务处理并且自动进行Commit或Rollback,这样就不能通过在PowerBuilder中用Commit或Rollback语句来进行控制,但是当AutoCom
8、mit为F
此文档下载收益归作者所有