标题:关于删除数据的问题
取消只看楼主
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
结帖率:99.76%
已结贴  问题点数:100 回复次数:6 
关于删除数据的问题
程序代码:
set defa to d:\
clos all
use cgf
do while .not.eof()
   dele from cgf where wt.cc=cgf.aa
   skip
enddo
clos all
use cgf
brow


这是一个不能被运行的代码 ,代码大意就是  首先定位CGF.AA 然后去wt表中搜索 如果wt.cc=cgf.aa 则删除掉cgf中当前记录
搜索更多相关主题的帖子: 删除 数据 代码 定位 表中 
2017-09-21 08:34
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
以下是引用厨师王德榜在2017-9-21 13:17:49的发言:

 不能运行的原因,可能是  dele from cgf where wt.cc=cgf.aa 这一句移动了指针位置,后面你再用eof()去判断,就已经失去了意义。

是没有打开wt这个表 系统不认识wt是神马  语法错误 而非运行错误

DO IT YOURSELF !
2017-09-21 13:32
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
以下是引用cxzbzgz在2017-9-21 10:03:52的发言:

SET DEFAULT TO d:\
CLOSE ALL
SELECT 1
  USE cgf
 SELECT 2
   USE wt
 SELECT 1
 DO WHILE NOT EOF()
  cka=aa
  SELECT 2
   LOCATE FOR wt.cc=cka
    IF NOT EOF()
     DELETE
    ENDIF
   SELECT 1
   SKIP
ENDDO
CLOSE ALL
USE cgf
BROWSE 如果数据很多的话,用索引操作就会成倍提高速度!



大致代码如此   后来分析 是win7和vfp6 不融洽 导致个别语句失去效用  也不晓得是不是这样

DO IT YOURSELF !
2017-09-21 13:33
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
以下是引用吹水佬在2017-9-21 10:37:23的发言:

CREATE CURSOR cfg (aa I)
INSERT INTO cfg VALUES (102)
INSERT INTO cfg VALUES (101)
INSERT INTO cfg VALUES (103)
INDEX on aa TAG cfg_aa
CREATE CURSOR wt (cc I)
INSERT INTO wt VALUES (101)
INSERT INTO wt VALUES (103)
INSERT INTO wt VALUES (105)
INSERT INTO wt VALUES (101)
INSERT INTO wt VALUES (102)
INSERT INTO wt VALUES (104)
INSERT INTO wt VALUES (103)
INSERT INTO wt VALUES (106)
SET RELATION TO cc INTO cfg
DELETE FOR FOUND("cfg")
SET DELETED ON
BROWSE
SET DELETED OFF

这个不错  效率应该很高

DO IT YOURSELF !
2017-09-21 13:38
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
回复 8楼 mywisdom88
现在的问题是 win7 和vfp6 能组合不

DO IT YOURSELF !
2017-09-21 13:43
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
以下是引用mywisdom88在2017-9-21 13:44:29的发言:

上面的代码,是可以用在VFP6的



我问的是win7和vfp6啊  现在类似代码 在vfp6 和xp中已经没有问题了

DO IT YOURSELF !
2017-09-21 13:45
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
以下是引用sdta在2017-9-21 13:59:11的发言:

CREATE CURSOR cfg (aa I)
INSERT INTO cfg VALUES (102)
INSERT INTO cfg VALUES (101)
INSERT INTO cfg VALUES (103)

CREATE CURSOR wt (cc I)
INSERT INTO wt VALUES (101)
INSERT INTO wt VALUES (103)
INSERT INTO wt VALUES (105)
INSERT INTO wt VALUES (101)
INSERT INTO wt VALUES (102)
INSERT INTO wt VALUES (104)
INSERT INTO wt VALUES (103)
INSERT INTO wt VALUES (106)
SCAN
    DELETE FROM CFG WHERE WT.CC=CFG.AA
ENDSCAN
SELECT CFG
BROWSE

XP、VFP6下通过


现在的问题是xp vfp6下通过的代码 在win7 vfp6 下无法通过

DO IT YOURSELF !
2017-09-21 15:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-480840-1-1.html




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

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