replace的用法

nbtvujwc 2005-11-10 09:57:42
在vfp中如何用replace把整个字段的内容都替换!
...全文
598 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
nbtvujwc 2005-11-10
  • 打赏
  • 举报
回复
谢谢
成功了!

我是宁波的,你呢?
我的邮箱:cxdd15@163.com
以后可以多多交流了!
十豆三 2005-11-10
  • 打赏
  • 举报
回复
use dzzc
replace all zymc with 'o' &&如果字段为字符型
十豆三 2005-11-10
  • 打赏
  • 举报
回复
更新表记录。


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

指定要替换的记录范围。REPLACE 的默认范围是当前记录(NEXT 1)。只有在范围内的记录才被替换。范围子句有:ALL、 NEXT nRecords、 RECORD nRecordNumber 和 REST。有关范围子句的更多信息,请参见 范围子句。
FOR lExpression1

指定只有使 lExpression1 结果为真(.T.)的记录中的指定字段才被替换。包含 FOR 子句可以有条件的替换记录,筛选出不想替换的记录。如果 lExpression1 是一个可优化表达式,则 Rushmore 查询优化技术将优化 REPLACE FOR 。为了获得最佳性能,应在 FOR 子句中使用可优化表达式。更详细的信息,请参见 SET OPTIMIZE 和 使用 Rushmore 查询优化数据访问速度。
WHILE lExpression2

指定一个条件,只要表达式 lExpression2 的结果为真(.T.)的记录中的字段就被替换。&&译者注:直至遇到第一个为假的记录
IN nWorkArea

指定要更新记录的表所在的工作区。
IN cTableAlias

指定要更新记录的表的别名。如果省略 nWorkArea 和 cTableAlias,则更新当前选定工作区中表的记录。
NOOPTIMIZE

禁止 Rushmore 优化。更详细的信息,请参见 SET OPTIMIZE 和 使用 Rushmore 查询优化数据访问速度。
解释
REPLACE 用表达式的值替换字段中的数据。若字段不在选定工作区,则必须在字段前加上表别名。

注意:
如果省略 IN 子句,如果记录指针位于当前工作区中文件的尾部,且指定了另一个工作区中的字段 ,则不发生替换操作。
 


 

示例
下例创建一张包含 10 条记录的表。REPLACE 用来将随机值放入一个字段。MIN( ) 和 MAX( ) 显示表中最大和最小值。

复制程序代码
CLOSE DATABASES
CREATE TABLE Random (cValue N(3))
FOR nItem = 1 TO 10 && 添加 10 条记录,
APPEND BLANK
REPLACE cValue WITH 1 + 100 * RAND( ) && 插入随机值
ENDFOR

CLEAR
LIST && 显示值
gnMaximum = 1 && 初始化最小值
gnMinimum = 100 && 初始化最大值
SCAN
gnMinimum = MIN(gnMinimum, cValue)
gnMaximum = MAX(gnMaximum, cValue)
ENDSCAN
? '最小值是: ', gnMinimum && 显示最小值
? '最大值是: ', gnMaximum && 显示最大值

nbtvujwc 2005-11-10
  • 打赏
  • 举报
回复
错误提示:命令中含有不能识别的短语或关健字
use dzzc replace all zymc with o
zsjiaming 2005-11-10
  • 打赏
  • 举报
回复
use 表 &&你要修改的表名
replace all zymc with 0
wwwwb 2005-11-10
  • 打赏
  • 举报
回复
怎么不对?检查一下字段类型。
nbtvujwc 2005-11-10
  • 打赏
  • 举报
回复
谢谢
但我在VFP的命令窗口中用了如下语句好像不对:
replace all zymc with 0
wwwwb 2005-11-10
  • 打赏
  • 举报
回复
use table
repl all 字段 with 内容
zsjiaming 2005-11-10
  • 打赏
  • 举报
回复
(1)整个...如果是指整个表的的某一字段:
REPLACE ALL 字段a with 0 &&把所有的字段a替换成0
replace 字段a with 0 &&替换当前记录的字段a为0
(2)整个...如果是指某一记录的全部字段
replace 字段a with 0,字段 b with 1,字段c with 2 &&0,1,2 这你想要替换成的值.

2,727

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧