|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
事实上,在任何DBaaS中,解决方案提供商对如何管理物理资源都没有控制权,因此MySQL学习教程可能会发现由于DBaaS的局限性使得他们提供给客户的远远小于客户所期望的。window|数据DataWindow的数据缓冲区
张健姿01-6-22下战书03:14:44
DATAWINDOW的四个缓站区在PowerBuilder中,DataWindow是用户前端用来存储、利用数据的工具。在每个DataWindow工具中有4个二维表作为数据缓冲区,用来存储查询到的数据。用户在DataWindow中对数据处置体系外部的操纵实践上都是将数据在这几个缓冲区中举行的修正和挪动,最初在用户提交数据库时,体系依据这四个缓冲区中的信息构成SQL的IN-SERT,UPDATE,DELETE等语句。这四个缓冲区是:PrimaryBuffer这个缓冲区是寄存添补窗口中DataWindow控件中数据的,挪用DataWindow的Retrieve()函数和InsertRow()函数能够将数据填进这个缓冲区中。当利用有关DataWindow删除和过滤函数时,响应纪录将从这一缓冲区中删除。而在实行DataWindow的Update()函数时,PowerBuilder将检察这一缓冲区中的纪录,以构成SQLINSERT和UPDATE语句。DeleteBuffer这个缓冲区保留的是用DeleteRow()函数从PrimaryBuffer中删除的纪录,实行Update()函数时,体系依据这一缓冲区的纪录构成DELETE语句。FilterBuffer这个缓冲区存储的是从OriginalBuffer利用Filter()函数过滤到PrimaryBuffer中后残剩的纪录。OriginalBuffer这一缓冲区存储的是DataWindow最后实行retrieve()函数时失掉的全体纪录。当提交数据库时,依据PrimaryBuffer天生的UPDATE语句和依据DeleteBuffer天生的DELETE语句都要根据这一缓冲区来机关这些SQL语句中的Where子句。OriginalBuffer由PowerBuilder外部保护,Power-Builder所供应的任何函数都没法改动它的值,不外经由过程PowerBuilder所供应的GetItem…系列的函数能够读出DataWindow最后从数据库中查到的原始值。经由过程这些函数我们能够编程完成所谓的"Undo"功效,而且失掉在利用悲观锁时构成提交数据库的WHERE子句。假如您以后利用的DataWindow没有设置修正的权利,您将不克不及对Delete缓冲区和Original缓冲举行操纵,并且当挪用Update()时也将引发体系毛病。数据缓冲区的形态值PrimaryBuffer和DeleteBuffer都有行级和列级的形态值,这个形态值是一个列举范例。在提交时由该行的形态值来决意是不是要发生SQL语句,个中PrimaryBuffer发生的是IN-SERT和UPDATE语句,而DeleteBuffer发生的是DELETE语句。我们用GetItemStatus()函数和SetItemStatus()函数能够对这一形态值作利用。这一列举形态有以下四种:・NotModified!―――该行或行的值为查询所得,没有产生改动。・DataModified!―――该行或列的值为查询所得,产生了改动。・New!―――该行或列为一拔出的新行,数据没有产生改动(数据为空或缺省值)。・NewModified!―――该行或列为一拔出的新行,数据产生改动。改动是经由过程用户键盘输出或挪用了SetItem()函数。让我们来看上面这一实例:我们有如许一张表,表中有三个字段,个中ITEM是主键。ITEMCHAR(5);NAMECHAR(20);QUANTITYINT。在Script中我们查询这张表的纪录,失掉以下这些信息存储了在Primary和OrigianalBuffer中,个中的行号是缓冲区加上的。!TB01175000.gif在窗口中,我们编程过滤失落数目为0的行,而且加上一个空行:dw_1.SetFilter("quantity=0")dw_1.Filter()dw_1.InsertRow()这时候PrimaryBuffer的形态为:!TB01175001.gif在FilterBuffer中的纪录为:!TB01175002.gif用户在新拔出行中输出数据,删除第3行数据,并修正了第2行数据。当他分开这个DataWindow时,Primary和Delete缓冲区的形态以下:!TB01175003.gif这时候实行dw_1.update()函数,体系将基于这两个缓冲区天生SQL语句。!TB01175004.gif在PrimaryBuffer中,形态为NotModified和New!的即将被疏忽而不发生SQL语句。形态为DataModified的即将发生UPDATE语句,形态为NewModified的即将发生INSERT语句,在Delete缓冲区中的即将发生DELETE语句。四个缓冲区在编程中的使用某些DataWindow控件的函数有指定DataWindow缓冲区的功效。假如缺省,则暗示Primary缓冲区。以下是能够指定缓冲区的函数:・GetItemStatus()・GetNextModified()・GetUpdateStatus()・SetItemStatus()别的另有GetItem…系列的函数,用以查询DataWindow中的值。这些函数有:・GetItemDate()・GetItemDataTime()・GetItemDecimal()・GetItemNumber()・GetItemString()・GetItemTime()MySQL部署迅速,因此移植过程不会导致生产中断。而且,较短的学习曲线可以让你的系统管理员迅速掌握它的运行和维护。而且,MySQL的易于维护和管理意味着目前的职员可以处理目前的工作。 |
|