- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[PB]安全与完整性的数据保存PowerBuilder和SQL Server的应用
[PB]安全与完整性的数据保存PowerBuilder和SQL Server的应用
安全与完整性的数据保存PowerBuilder和SQL Server的应用
当今,客户/服务(Client/Server)和因特网/内部网(Internet/Intranet)体系在软件开发和应用领域非常流行,同时以PowerBuilder和Microsoft SQL Server 6.5或Sybase SQL Server System 11(Microsoft和Sybase的SQL Server在本文中都简称SQL Server)作为Client/Server体系结构的前台和后台开发工具也被广泛的应用。然而在应用过程中,由于PowerBuilder和SQL Server基本上是两个独立的过程,因此要使它们两者紧密配合起来在事务处理过程中保证系统和数据的安全与完整性是困难的,这也就是说当通过PowerBuilder来更新一组SQL Server的表时,要保证在任何情形下,系统都不会发生数据表被部分保存、或者出现SQL Server将被处理数据自动回退(Rollback)却不把该过程通知PowerBuilder而引导其用户以为已经成功的保存了数据的错误,同时也不会发生当前数据被锁和事务日志(Transaction Log)满的系统错误,作上述的保证是很困难的。在此我们将讨论使用PowerBuilder和SQL Server开发Client/Server体系类的应用软件时要保证系统和数据的安全与完整性所应注意的一些问题。
PowerBuilder一般是通过数据窗口(Datawindow)来产生SQL Statement(例如:Insert、Update或Delete)或调用存储过程(Stored Procedure)并提交给SQL Server进行事务(Transaction)处理,同时PowerBuilder也可直接运用植入的(Embedded) SQL语句、调用(Call) Stored Procedure或动态的(Dynamic) SQL来完成Transaction处理。不论是PowerBuilder通过Datawindow产生SQL Statement或调用Stored Procedure,还是直接运用Embedded SQL、 Stored Procedure或Dynamic SQL等,系统都是将单一或一组的SQL Statement提交给SQL Server来运作。
SQL Server接收SQL Statement后,假设被接收SQL Statement对一个表运作,但其运作也可能启动表中的触发器(Trigger)并且此Trigger也可能会对其它表产生运作、或启动数个Stored Procedure或其它Trigger。SQL Server处理完接收的SQL Statement后会返回结果给PowerBuilder,PowerBuilder应根据SQL Server返回的结果作出相应的‘提交Commit)’或‘回退(Rollback)’操作或者提示,这时可能会出现几种情形:
1当SQL Server因出错而自动Rollback后,PowerBuilder如何了解错误且立即告知用户Update失败;
2当SQL Server对Transaction处理结束且返回结果时,PowerBuilder要判断其结果是否符合要求,并进行相应的Commit或Rollback操作或者提示;
3若某一客户端的系统发生故障或其使用者操作失误 时,PowerBuilder程序员如何处理SQL Server的数据锁或Transaction Log满的问题。
在以上PowerBuilder处理数据的过程中,它的AutoCommit属性值的设定是很关键的,因此我们先介绍AutoCommit。
如何正确使用AutoCommit属性
SQL Server是通过Begin Tran语句来控制同一个批次的Transaction中的数个SQL Statement及其处理的数据,通过Commit Tran和Rollback Tran语句来保证它们被全部处理成功后才提交、或者当该组中任一个或多个处理失败时被全部回退并释放被独占的所有数据,这就不会破坏数据处理的安全与完整性,SQL Server中的Begin Tran语句在PowerBuilder中对应的是AutoCommit属性,当AutoCommit的值为True时,SQL Server会在PowerBuilder执行任何一个SQL命令(例如:Update()或Embedded SQL等)后立即控制当前的事务处理并且自动进行Commit 或Rollback,这样就不能通过在Pow
您可能关注的文档
最近下载
- 农产品加工与储存技术培训.pptx VIP
- 1.3政党和利益集团 课件(共26张PPT)- 高中政治统编版选择性必修1当代国际政治与经济.pptx VIP
- 《无人机地面站与任务规划》全套教学课件.pptx
- 2024学年八年级下学期期中质量评估数学试卷(含答案) .pdf VIP
- PMC部门通用培训教程:生管与物控人员专业技能培训.pptx VIP
- 2024高一新生入学开学第一课班会.pptx VIP
- 2025年离婚协议书(最新版).pdf VIP
- 校长在2025年一年级新生家长会上的讲话:携手同行,共护新苗茁壮成长.docx
- 运维培训方案及培训计划.docx VIP
- SW3518中文数据手册.pdf VIP
文档评论(0)