求指导!scan语句里镶嵌update命令的问题。。。。。。

baidu_30357287 2015-08-04 04:50:41
编写了一个程序对表中的数据进行逐行操作,我使用scan命令。算法里想要实现的是对每一行进行操作后会进行一个跟新,即从表中找到和所在行数据相同行,用新算出的数据替代这些。部分命令是这样的:
SCAN
DO CASE
CASE t1=0 AND t2=1
a0=x2
b0=y2
v0=SQRT(v1^2+v2^2)
a1=x1+((l1*v1)/v0)
b1=y1+((l1*v2)/v0)
UPDATE 展开数据 SET x1=a1,y1=b1 WHERE x1=a0 AND y1=b0
UPDATE 展开数据 SET x2=a1,y2=b1,t1=1 WHERE x2=a0 AND y2=b0
UPDATE 展开数据 SET x3=a1,y3=b1,t2=1 WHERE x3=a0 AND y3=b0


CASE t1=1 AND t2=0
c0=x3
d0=y3
v0=SQRT(v1^2+v2^2)
c1=x1+((l2*v1)/v0)
d1=y1+((l2*v2)/v0)
UPDATE 展开数据 SET x1=c1,y1=d1 WHERE x1=c0 AND y1=d0
UPDATE 展开数据 SET x2=c1,y2=d1,t1=1 WHERE x2=c0 AND y2=d0
UPDATE 展开数据 SET x3=c1,y3=d1,t2=1 WHERE x3=c0 AND y3=d0


CASE t1=0 AND t2=0
a0=x2
b0=y2
v0=SQRT(v1^2+v2^2)
a1=x1+((l1*v1)/v0)
b1=y1+((l1*v2)/v0)
UPDATE 展开数据 SET x1=a1,y1=b1 WHERE x1=a0 AND y1=b0
UPDATE 展开数据 SET x2=a1,y2=b1,t1=1 WHERE x2=a0 AND y2=b0
UPDATE 展开数据 SET x3=a1,y3=b1,t2=1 WHERE x3=a0 AND y3=b0
c0=x3
d0=y3
c1=x1+((l2*v1)/v0)
d1=y1+((l2*v2)/v0)
UPDATE 展开数据 SET x1=c1,y1=d1 WHERE x1=c0 AND y1=d0
UPDATE 展开数据 SET x2=c1,y2=d1,t1=1 WHERE x2=c0 AND y2=d0
UPDATE 展开数据 SET x3=c1,y3=d1,t2=1 WHERE x3=c0 AND y3=d0


ENDCASE
ENDSCAN

然而运行之后存在基本没有运算就结束的问题,update命令是不是会导致表指针移到末尾从而使scan命令提前结束??
...全文
405 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dfwxj 2015-08-08
  • 打赏
  • 举报
回复
乱七八糟,先查询一个副本出来循环
liups 2015-08-06
  • 打赏
  • 举报
回复
不建议这样干。update命令会导致记录指针移动,然后就凌乱了 但是:我以前见过类似这样的写法,要点是update前面先记录记录号,然后可以用其恢复指针(同时,还必须记住,可能改变的不止指针,可能还有工作区!)
lzw_0736 2015-08-05
  • 打赏
  • 举报
回复
SCAN 前打開的表名是什麼?
baidu_30357287 2015-08-04
  • 打赏
  • 举报
回复
引用 1 楼 lzw_0736 的回复:
scan打開的表名也是“展开数据”?
也打开这个表的话直接一运行就结束。
lzw_0736 2015-08-04
  • 打赏
  • 举报
回复
scan打開的表名也是“展开数据”?

2,750

社区成员

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

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