大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> DataWindow的数据缓冲区

DataWindow的数据缓冲区

时间: 2021-07-31 作者:daque

在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爆发的是insert和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() 

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.