前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PowerBuilder的搜索

PowerBuilder应用开发系列讲座(1) - 王朝网络 - wangchao.net.cnwangchao.net.cn | 订阅该频道 | 在线投稿 商城旅游美容健康家饰女性游戏互联网探索资源娱乐学院 母婴 | 数码 | 汽车 | 珠宝 | 家电 | 美食 | 景区 | 养生 | 手机 | 购车 | 首饰 | 美妆 | 装修 | 厨房 | 科普 | 动物 | 植物 | 情 | 百态 | 编程 | 商品 | 财经 | 信息 | 军事网页购物汽车家饰学院女性珠宝游戏家电娱乐知道百科词典商城资源 空间 购物 百科 知道 词典 美女 明星 风景 繁体 当前位置: 王朝网络 >> mssql >> PowerBuilder应用开发系列讲座(1) PowerBuilder应用开发系列讲座(1)上一篇《Oracle下的数据分片技术》下一篇《Microsoft 数据仓库架构 !》字体: 小|中|大 本文来源: 互联网  PowerBuilder应用开发系列讲座(1)     PowerBuilder应用开发系列讲座(1) PowerBuilder应用开发系列讲座(1)  张健姿  在数据库中,所谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态。为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应全部视为错误,所有从起始点以后的操作应全部回退到开始状态。  对事务的操作是这样进行的:先定义开始一个事务,然后对数据作修改操作,这时如 果提交(COMMIT),这些修改就永久地保存下来,如果回退(ROLLBACK),数据库管理系统将放弃 您所作的所有修改而回到开始事务时的状态。此外有些数据库支持事务的“存储点(savepoint)”这一概念:即在一个事务进程中任意一点您都可以进行当前状态的存储,回退时只是回到你所设定 的存储点,而不必退回全部的事务。如果您的事务可以分成几组对数据库的修改,那就可以设置 多个存储点,根据需要您可以回退到任意一个存储点,而不使所有事务的修改数据全部丢失。  正确地管理事务可以保证数据的完整性,当您所做的工作全部完成和得到确认之前,没有任何数据物理地写进数据库。让我们来看这样一个实例,我们有这样一个银行应用系统,前台使用者作出将储户甲的一百元存款划归储户乙帐下的操作;在后台的数据库中,这两个客户的记录分储在两张表中,当使用者在屏幕上作出如上操作时,在后台需要对两张表进行修改。如果在数据库中对甲用户存款余款作减去一百元修改后,对乙用户加一百元的操作修改却失败时,前一张表也必须回到修改前的状态,否则数据库的内容不统一,甲储户白白损失一百元,信息必然是不正确的。因此进行事务管理是必须的。  传统地,我们认为一个事务包括了对一个或多个表的修改,而随着分布式数据库和数据仓库的发展,事务可能包括了对一个或多个数据库的修改。在上例中甲乙两用户就可能是异地用户,信息分储在不同地域的不同数据库中,上述的一个事务就涉及到了对不同数据库的操作。  PowerBuilder中的事务管理  作为数据库的前台开发工具Power-Builder支持事务管理的操作。在Power-Builder中有一种称作事务(transaction)的对象,这个对象是PowerBuilder应用与数据库的通讯区域。PowerBuilder在应用开始时建立一个全局的事务对象SQLCA。由于大多数的应用只用到一个数据库,所以一般开发者主要也只用SQLCA作为与唯一数据库连接的事务对象。  PowerScript中常用的事务管理的语句有四个:COMMIT,ROLLBACK,CONNECT,DISCONNECT。  当您需要应用与数据库建立连接时使用CONNECT这一操作命令,取消连接时执行DISCONNECT,这两个命令一般分别用在应用的开始和结束,也就是Appli-cation的Open和Close事件中。  当一个事务的数据库修改都成功地完成后,修改须提交给数据库,COM-MIT语句是一个旧事务结束和一个新事务开始的界线。在修改被提交前,数据库的数据并没有被真正地修改,这些修改被保留在某个工作区,只有作修改的用户才能看到这些被修改后的值,提交之后,则所有的用户就都可以看到新值了。  在事务的进程中发生某些错误,或者在操作中出于种种原因打算中止事务,须用ROLLBACK命令回退事务,如果已作的操作不用ROLLBACK命令取消,这些操作必将错误地作为下一个事务的一部分而导致数据库的混乱。  如果您使用的是多窗口的应用,却只用一个事务对象,就应格外注意ROLL-BACK和COMMIT会影响事务的逻辑一致性。在某个窗口执行的这两个指令会使其他窗口应用中所进行到一半的工作提交或回退。  在多用户系统中,修改和提交的时间越接近,提交成功的可能性就越高。因为一个事务中所有的SQL语句全部执行成功而提交却失败是完全可能发生的,例如在您的事务过程中,另一个用户修改了数据并提交,这很可能使您作出的修改无效,这时COMMIT将失败,您必须回退这一事务的全部。  事务对象的AutoCommit属性  事务对象有一个AutoCom-mit的属性可以使开发者简化对事务管理的操作,这一布尔型的属性可以用TRUE或FALSE来对其赋值。当其为真时,PowerBuilder不通过其他额外的交互就将您的SQL语句传输给后台数据库,而且执行完毕自动提交。  当然,您可以设置AutoCommit属性为假(缺省值),使用COMMIT或ROLLBACK这样的关键词提交或回退事务。在大多数应用中,一部分的数据库操作是要成组提交的,而另一些则不用。因此我们可以利用AutoCommit的特性来确定事务的起点,当我们把AutoCommit的属性设为False时,系统设定此时为事务的起点。当AutoCommit设为真时,系统自动消取这一事务。因此你可以先把AutoCommit设为真,当您需要开始一个事务时,将其置为false,此刻即为事务起始点。  PowerBuilder内部这种事务管理的最大优点是方便。您不去考虑整个事务,而只需把您所作的修改提交或滚回即可。但是方便与可控性总是矛盾的,在Power-Builder中没有存储点和嵌套事务管理的机制,即使您所使用的数据库支持这些特性,在PowerBuilder中却无法得以体现。不过在普通的应用中,存储点和嵌套事务管理并不是必须的,一般的事务管理足以够用。  用数据库的事务管理指令实现完全控制  上述的事务管理方式尽管简单方便,但是在某些应用中,我们也的确需要利用所用的数据库系统的嵌套事务和存储点的特性,而PowerBuilder内部的事务管理没有提供这样的功能,您必须自己设计。  自己进行事务管理的方式是直接使用数据库本身的事务指令。当您使用自己的管理方式时,就应使Power-Builder停止管理事务,即设置Auto-Commit为TRUE,系统内部就不会自动建构事务处理的命令了。实现人工事务管理的方式是采用EXECUTEIMMEDI ATE这条PowerBuilder指令来执行任意的数据库操作。你所需做的是将数据库指令编辑成一个字符串,您可以执行任何的数据定义语句如建表、建主键、存储过程等,例如您可以用EXECUTE IMMEDIATE BEGIN TRANSACTION trans-name。这样的指令开始一个事务。采用这种方法,只要您所用的数据库支持嵌套事务和存储点等事务管理,我们通过PowerBuilder开发出的应用也就同样可以实现。  在PowerBuilder中提供的事务管理的方法是多种多样的,只要您灵活运用,就一定能设计出优秀的数据库应用来。(王朝网络 wangchao.net.cn) 小游戏的天堂—金山快快游戏世界-工具软件 今天也碰到了HTTP 500 Internal server error,终于解决 (关键字关于使用http://www.tenaa.com.cn/求证手机真假的方法《罪美丽》分集剧情介绍(1-20全集)大结局内容介绍千山暮雪续集蓦然回首分集剧情介绍(1-32全集)大结局内容介绍《绅士的品格》分集剧情介绍(第1-20全集)大结局内容介绍快快游戏推荐本季最炫爱情主题网《天使的选择》分集剧情简介(1-性技巧 外貌看出女人床上功夫《大太监》分集剧情介绍(大结局 《明天我依然爱你》分集剧情介绍(1-30全集)大结局内容介绍 《幸福妈妈》分集剧情介绍(大结局)剧情内容介绍《新大秦帝国(第二部)》之《国命纵横》分集剧情介绍 大结局内容央视新闻联播主持人的工资是多少???《新还珠格格(第二部)》分集剧情介绍(1-30全集)大结局内容介美国为什么不怕日本强大,而怕中国强大?《太阳的新娘》分集剧情介绍(第《倾城绝恋》分集剧情介绍(大结[奇异风俗]世界各地奇异风俗:天体《后宫甄嬛传》分集剧情介绍(第 标签: PowerBuilder应用开发系列讲座PowerBuilder应用开发系列讲座(1) PowerBuilder应用开发系列讲座(1) PowerBuilder应用开发系列讲座(1) 张健姿   在数据库中,所谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态。为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应全部视为错误,所有从起始点以后的操作应全部回退到开始状态。    对事务的操作是这样进行的:先定义开始一个事务,然后对数据作修改操作,这时如 果提交(COMMIT),这些修改就永久地保存下来,如果回退(ROLLBACK),数据库管理系统将放弃 您所作的所有修改而回到开始事务时的状态。此外有些数据库支持事务的“存储点(savepoint)”这一概念:即在一个事务进程中任意一点您都可以进行当前状态的存储,回退时只是回到你所设定 的存储点,而不必退回全部的事务。如果您的事务可以分成几组对数据库的修改,那就可以设置 多个存储点,根据需要您可以回退到任意一个存储点,而不使所有事务的修改数据全部丢失。   正确地管理事务可以保证数据的完整性,当您所做的工作全部完成和得到确认之前,没有任何数据物理地写进数据库。让我们来看这样一个实例,我们有这样一个银行应用系统,前台使用者作出将储户甲的一百元存款划归储户乙帐下的操作;在后台的数据库中,这两个客户的记录分储在两张表中,当使用者在屏幕上作出如上操作时,在后台需要对两张表进行修改。如果在数据库中对甲用户存款余款作减去一百元修改后,对乙用户加一百元的操作修改却失败时,前一张表也必须回到修改前的状态,否则数据库的内容不统一,甲储户白白损失一百元,信息必然是不正确的。因此进行事务管理是必须的。   传统地,我们认为一个事务包括了对一个或多个表的修改,而随着分布式数据库和数据仓库的发展,事务可能包括了对一个或多个数据库的修改。在上例中甲乙两用户就可能是异地用户,信息分储在不同地域的不同数据库中,上述的一个事务就涉及到了对不同数据库的操作。 PowerBuilder中的事务管理   作为数据库的前台开发工具Power-Builder支持事务管理的操作。在Power-Builder中有一种称作事务(transaction)的对象,这个对象是PowerBuilder应用与数据库的通讯区域。PowerBuilder在应用开始时建立一个全局的事务对象SQLCA。由于大多数的应用只用到一个数据库,所以一般开发者主要也只用SQLCA作为与唯一数据库连接的事务对象。   PowerScript中常用的事务管理的语句有四个:COMMIT,ROLLBACK,CONNECT,DISCONNECT。   当您需要应用与数据库建立连接时使用CONNECT这一操作命令,取消连接时执行DISCONNECT,这两个命令一般分别用在应用的开始和结束,也就是Appli-cation的Open和Close事件中。   当一个事务的数据库修改都成功地完成后,修改须提交给数据库,COM-MIT语句是一个旧事务结束和一个新事务开始的界线。在修改被提交前,数据库的数据并没有被真正地修改,这些修改被保留在某个工作区,只有作修改的用户才能看到这些被修改后的值,提交之后,则所有的用户就都可以看到新值了。   在事务的进程中发生某些错误,或者在操作中出于种种原因打算中止事务,须用ROLLBACK命令回退事务,如果已作的操作不用ROLLBACK命令取消,这些操作必将错误地作为下一个事务的一部分而导致数据库的混乱。   如果您使用的是多窗口的应用,却只用一个事务对象,就应格外注意ROLL-BACK和COMMIT会影响事务的逻辑一致性。在某个窗口执行的这两个指令会使其他窗口应用中所进行到一半的工作提交或回退。   在多用户系统中,修改和提交的时间越接近,提交成功的可能性就越高。因为一个事务中所有的SQL语句全部执行成功而提交却失败是完全可能发生的,例如在您的事务过程中,另一个用户修改了数据并提交,这很可能使您作出的修改无效,这时COMMIT将失败,您必须回退这一事务的全部。 事务对象的AutoCommit属性   事务对象有一个AutoCom-mit的属性可以使开发者简化对事务管理的操作,这一布尔型的属性可以用TRUE或FALSE来对其赋值。当其为真时,PowerBuilder不通过其他额外的交互就将您的SQL语句传输给后台数据库,而且执行完毕自动提交。   当然,您可以设置AutoCommit属性为假(缺省值),使用COMMIT或ROLLBACK这样的关键词提交或回退事务。在大多数应用中,一部分的数据库操作是要成组提交的,而另一些则不用。因此我们可以利用AutoCommit的特性来确定事务的起点,当我们把AutoCommit的属性设为False时,系统设定此时为事务的起点。当AutoCommit设为真时,系统自动消取这一事务。因此你可以先把AutoCommit设为真,当您需要开始一个事务时,将其置为false,此刻即为事务起始点。   PowerBuilder内部这种事务管理的最大优点是方便。您不去考虑整个事务,而只需把您所作的修改提交或滚回即可。但是方便与可控性总是矛盾的,在Power-Builder中没有存储点和嵌套事务管理的机制,即使您所使用的数据库支持这些特性,在PowerBuilder中却无法得以体现。不过在普通的应用中,存储点和嵌套事务管理并不是必须的,一般的事务管理足以够用。 用数据库的事务管理指令实现完全控制   上述的事务管理方式尽管简单方便,但是在某些应用中,我们也的确需要利用所用的数据库系统的嵌套事务和存储点的特性,而PowerBuilder内部的事务管理没有提供这样的功能,您必须自己设计。   自己进行事务管理的方式是直接使用数据库本身的事务指令。当您使用自己的管理方式时,就应使Power-Builder停止管理事务,即设置Auto-Commit为TRUE,系统内部就不会自动建构事务处理的命令了。实现人工事务管理的方式是采用EXECUTEIMMEDI ATE这条PowerBuilder指令来执行任意的数据库操作。你所需做的是将数据库指令编辑成一个字符串,您可以执行任何的数据定义语句如建表、建主键、存储过程等,例如您可以用 EXECUTE IMMEDIATE BEGIN TRANSACTION trans-name。这样的指令开始一个事务。采用这种方法,只要您所用的数据库支持嵌套事务和存储点等事务管理,我们通过PowerBuilder开发出的应用也就同样可以实现。   在PowerBuilder中提供的事务管理的方法是多种多样的,只要您灵活运用,就一定能设计出优秀的数据库应用来。上一篇《Oracle下的数据分片技术》下一篇《Microsoft 数据仓库架构 !》   免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 网友评论 查看所有评论 >>返回首页<<2006-12-17 08:46:14 繁體版 编辑 频道精选美女 美女啊母婴 丹丹日记:准备怀孕啦健康 尾牙季,随时随地爱牙Style旅游 迪拜七星级酒店“画蛇”庆蛇年 大年初一红色激情感 做人也需要弯弯腰游戏 人人游戏将亮相网博会 广结盟友共拓跨屏娱乐学院 通过手机浏览器的useragent实现手机版家饰 Kate Moss 内衣展现完美身材家电 春节送礼要体面 神族移动电源不可少女性 范冰冰领衔众女星 杂志红毯隔空撞衫汽车 被遗失的爱珠宝 坠进华丽的珠宝(1)军事 为避免进一步破坏珊瑚礁 美搁浅扫雷舰将拆卸网络 2013的金手指:淘宝客探索 人类记忆中的四种海怪:巨型皇带鱼和皱鳃鲨风景 我的家乡 更多内容·如何在数据库表中建立复合主键(即多个字段同时作·TreeView控件与数据窗结合控件原理·怎样在PB中实现文件的拷贝与删除·PB应用中收发电子邮件·Oracle下的数据分片技术·Microsoft 数据仓库架构 !·如何在你的Linux机器上安装运行Oracle·SYBASE编程中的莫名错误及其解决办法·Oracle9i的管理方面的一些新特性·如何查看各个表空间占用磁盘情况 最新评论·好爽·寄一句真真的问候,字字句句都祝你牛年快乐;送一·长期用中药抗癫痫会引起脱发吗·身高不会了 基点发生变化了·如果把网络关闭了,你还同步个毛毛啊。·一点儿也不好·变态无聊·唉!怎么能和这样的人一起生活?离开他就算死了又·看不懂= = 有点复杂 大大註解可以再详细·偸艺太正常了,即使老一辈艺人,也都有过偸艺的经 热点推荐 01 吃中药会引起脱发吗 02 ASP.NET将Web站点下的绝对路径转换为虚 03 刘亦菲否认与郎朗相亲:弹钢琴和弹棉花没差别 04 暴笑:张子怡最丑的十张图片 05 中国地质博物馆展出“珠峰身高之谜” 06 干掉原生云存储!体验手机“蜡笔同步”魅力 07 老公找小姐缠绵 还把小姐做爱细节告诉我 08 郭德纲偷录同行遭抵制 天津相声前辈齐砸纲(图) 09 同学的性感母亲主动诱我发生关系 转载本文 UBB代码 HTML代码复制到剪贴板... 王朝女性 健康 | 评测 | 品位奢品 | 娱乐 | 居家情感 | 星座 | 服饰美体 | 美容 | 达人亲子 | 图库 | 折扣生活 | 美食 | 花嫁王朝分站 美容 | 探索 | 母婴健康 | 旅游 | 军事家电 | 珠宝 | 娱乐学院 | 资源 | 家饰汽车 | 游戏 | 女性风景 | 原创 | 安全王朝编程 java/jsp | c/c++ | phpmysql | oracle | mssqlvb | html/css/js | c#asp | delphi | systemperl | vc | photoshop王朝商品 健康 | 家居 | 化妆厨具 | 玩具 | 礼品钟表 | 首饰 | 护理数码 | 软件 | 教育音乐 | 影视 | 图书王朝其他 家有宠物 | 英语沙龙软件设计 | 电脑技术图像设计 | 幽默笑话攻略秘籍 | 王朝水库生活百科 | 娱乐八卦网站推广 | 美女图片 &copy; 2005- 王朝网络 版权所有