点击或拖拽改变大小

Functions.OldVal 方法

X#
-- todo --
返回已修改但尚未更新的字段的原始值。

命名空间:  XSharp.VFP
程序集:  XSharp.VFP (在 XSharp.VFP.dll 中) 版本:2.22 GA
语法
 FUNCTION OldVal(
	cExpression,
	uArea
) AS USUAL CLIPPER
查看代码

参数

cExpression (Optional)
类型:__Usual
指定一个表达式,OldVal( )从表或远程数据源返回该表达式的原始值。 cExpression通常是来自表或远程数据源的字段或由一组字段组成的表达式。
uArea (Optional)
类型:__Usual
指定返回原始字段值的表或游标的别名。

指定返回原始字段值的表或游标的工作区。

返回值

类型:__Usual
字符型、货币型、日期型、日期时间型、双精度型、浮点型、整数型、逻辑型、数值型或备注型
备注
OldVal( )返回X#表或游标中已使用CursorSetProp( )启用行或表缓冲的记录的原始字段值。
如果数据库中的表或游标具有验证规则,OldVal( )不需要启用行或表缓冲即可返回原始字段值。
如果在启用行缓冲时将记录指针移动到不同的记录,或者发出TableUpdate( )以提交对记录的更改, 或者有其他导致更新的操作(如结束事务),则字段将被更新,原始字段值将不再可用。
OldVal( )返回的值的数据类型由您在cExpression中指定的表达式决定。
即使对于声明为NOT NULL且设置了Set NULL OFF的字段,OldVal( )也可以返回.NULL.。
如果在没有可选的uArea参数的情况下发出OldVal( ),则返回当前选定工作区中打开的表或游标的原始字段值。
示例
X#
 1Close Databases
 2Clear
 3* 创建新表并添加空白记录
 4Create Table employee (cLastName C(10))
 5Append Blank
 6* 插入初始值
 7Insert Into employee (cLastName) VALUES ("Smith")
 8* 启用并设置表缓冲
 9Set MultiLocks ON  // 允许表缓冲
10=CursorSetProp("Buffering", 5, "employee" )  // 启用表缓冲
11* 显示初始值
12=MessageBox("原始cLastName值: "+ cLastName, 0, "结果")
13* 更改记录值并显示结果
14Replace cLastName WITH "Jones"
15=MessageBox("修改后的cLastName值: "+ cLastName, 0, "结果")
16* 将字段的旧值存储到cTemp变量并显示结果
17cTemp=OldVal("cLastName", "employee")
18=MessageBox("原始cLastName值: "+ cTemp, 0, "结果")
19* 更新表并显示最终值
20=TableUpdate(.T.)
21=MessageBox("最终cLastName值: "+ cLastName, 0, "结果")
22* 关闭并删除示例表文件
23Use
24Delete FILE employee.dbf
参见