| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1065 人关注过本帖
标题:字段替换有没有错
只看楼主 加入收藏
wq123123qwe
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-2-15
结帖率:83.33%
收藏
 问题点数:0 回复次数:9 
字段替换有没有错
sele 0
sele fcpqmx
sele 0
sele dyd
use \\user\PLAN\PRGW\PQ_FC\dyd excl
REPL ALL  dyd.厂 WITH fcpqmx.厂 for dyd.订单号=fcpqmx.订单号呀 &&&&这段有没有错啊dyd.厂里面没有值



[ 本帖最后由 wq123123qwe 于 2012-2-17 14:01 编辑 ]
搜索更多相关主题的帖子: 订单号 
2012-02-17 13:21
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用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 编辑 ]

坚守VFP最后的阵地
2012-02-17 13:51
软件服务
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:344
专家分:736
注 册:2011-12-23
收藏
得分:0 
回复 2楼 sdta
高,一行引出千层浪
2012-02-17 13:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 楼主 wq123123qwe
把你寫的代碼逐行解釋來看看:該行想幹什麼,寫出的代碼實際幹了什麼,寫完,就知道怎麼回事了。

授人以渔,不授人以鱼。
2012-02-17 15:04
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用TonyDeng在2012-2-17 15:04:49的发言:

把你寫的代碼逐行解釋來看看:該行想幹什麼,寫出的代碼實際幹了什麼,寫完,就知道怎麼回事了。
牛不是吹的

坚守VFP最后的阵地
2012-02-17 15:16
dapinetree
Rank: 2
等 级:论坛游民
帖 子:29
专家分:34
注 册:2011-9-11
收藏
得分:0 
楼主首先要注意一点:你打开的所有自由表均在一个数据区内,即最后一个表把前面所有自由表数据全部覆盖了!
2012-02-17 22:29
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
楼主的代码应该修改为:

sele 0
use fcpqmx
sele 0
use \\user\PLAN\PRGW\PQ_FC\dyd excl


其实用一个内存变量来暂存中间数据,程序更容易阅读和理解。

[ 本帖最后由 hu9jj 于 2012-2-18 09:39 编辑 ]

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-02-18 09:32
wxgfeiyan
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-2-17
收藏
得分:0 
sele 0
 sele fcpqmx
sele 0
 sele dyd
 use \\user\PLAN\PRGW\PQ_FC\dyd excl
 REPL ALL  dyd.厂 WITH fcpqmx.厂 for dyd.订单号=fcpqmx.订单号呀 &&&&这段有没有错啊dyd.厂里面没有值
 很显然,第四、第五两行应换位置
正确的应为:
sele 0
 sele fcpqmx
sele 0
use \\user\PLAN\PRGW\PQ_FC\dyd excl
 sele dyd
  REPL ALL  dyd.厂 WITH fcpqmx.厂 for dyd.订单号=fcpqmx.订单号呀 &&&&这段有没有错啊dyd.厂里面没有值
这样问题就应该解决



2012-02-19 13:55
mayuebo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:257
专家分:1282
注 册:2005-9-8
收藏
得分:0 
这个不是SQL的代码,是VFP的

成功贵在坚持
2012-02-19 15:11
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
回复 9楼 mayuebo
VFP不能用SQL的代码?
2012-02-19 17:51
快速回复:字段替换有没有错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024073 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved