以下是引用wq123123qwe在2012-2-17 13:21:34的发言:
REPL ALL dyd.厂 WITH fcpqmx.厂 for dyd.订单号=fcpqmx.订单号呀 &&&&这段有没有错啊dyd.厂里面没有值
贴出全部代码。
**回答正确:错
**信息提示:找不到别名"fcpqmx"
**dyd.厂里面没有值,结果是正确的。
replace 命令
更新表的记录内容。
语法
REPLACE FieldName1 WITH eExpression1 [ADDITIVE]
[, FieldName2 WITH eExpression2 [ADDITIVE]] ...
[Scope] [FOR lExpression1] [WHILE lExpression2]
[IN nWorkArea | cTableAlias]
[NOOPTIMIZE]
参数
FieldName1 WITH eExpression1 [, FieldName2 WITH eExpression2 ... ]
指定用表达式 eExpression1 的值来代替 FieldName1 字段中的数据;用表达式 eExpression2 的值来代替字段 FieldName2 中的数据,依此类推。
当表达式的值比数值字段的宽度长时,REPLACE 采用以下方法来处理数据:
首先,REPLACE 截短表达式的小数位然后圆整剩余部分。
如果此时字段仍然放不下表达式的值,则 REPLACE 用科学计数法在字段中保存表达式的值。
如果还不行,REPLACE 则用星号代替字段内容。
ADDITIVE
把对备注字段的替代内容追加到备注字段的后面。ADDITIVE 只对替换备注字段有用。如果省略 ADDITIVE,则用表达式的值改写备注字段原有内容。
Scope
指定要替换内容的记录范围。只替换指定范围内记录字段的内容。范围子句有:ALL、NEXT nRecords、RECORD nRecordNumber 和 REST。有关范围子句的详细内容,请参阅Scope 子句或语言概述主题或《开发指南》第二章“语言概述”。
REPLACE 的默认范围是当前记录 ( NEXT 1 )。
FOR lExpression1
只有当指定记录使表达式 lExpression1 求值结果为“真”(.T.) 时,它的字段才会被替换为新的内容。因此,包含 FOR 子句可以使命令有条件地更新记录,而将那些不需要更新的记录筛选掉。
当表达式 lExpression1 是可优化表达式时,Rushmore 将优化 replace 命令。因此,为使系统获得最佳性能,应在 FOR 表达式中使用可优化的表达式。有关这方面的详细内容,请参阅 SET OPTIMIZE 和深入了解 Rushmore 技术主题,或《开发指南》第十五章“优化应用程序”。
WHILE lExpression2
指定一个逻辑表达式 lExpression2 作为替换字段内容的条件。只要逻辑表达式 lExpression2 计算为“真”(.T.),就替换记录中的数据,直至遇到第一个计算结果为“假”(.F.) 为止。
IN nWorkArea
指定要更新记录的表所在的工作区。
IN cTableAlias
指定要更新记录的表的别名。
如果同时省略 nWorkArea 和 cTableAlias,则更新当前选定工作区中表的记录。
NOOPTIMIZE
关闭 Rushmore 优化。有关详细内容,请参阅 SET OPTIMIZE 和 深入了解 Rushmore 技术主题,或者《开发指南》第十五章“优化应用程序”。
说明
replace 命令用表达式的值替换字段中的数据。在替换未选定工作区中的字段时,字段前面必须加上表的别名。
附注
如果记录指针已在当前工作区中文件的末端,而指定的字段在另一个工作区中,则不发生任何替换。
[
本帖最后由 sdta 于 2012-2-17 13:52 编辑 ]