标题:关于删除数据的问题
只看楼主
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
结帖率:99.76%
已结贴  问题点数:100 回复次数:21 
关于删除数据的问题
程序代码:
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
cxzbzgz
Rank: 8Rank: 8
来 自:云南楚雄
等 级:贵宾
威 望:24
帖 子:295
专家分:805
注 册:2012-6-15
得分:13 
程序代码:
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 
如果数据很多的话,用索引操作就会成倍提高速度!

学习交流VFP,QQ:248561326。
2017-09-21 10:03
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:13 
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
2017-09-21 10:37
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:13 
不能运行的原因,可能是  dele from cgf where wt.cc=cgf.aa 这一句移动了指针位置,后面你再用eof()去判断,就已经失去了意义。
2017-09-21 13:17
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
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:13 
SET SAFETY OFF
SET STATUS OFF   
SET STATUS BAR OFF
SET TALK OFF

set defa to d:\

CREATE TABLE cgf(aa i)
INSERT INTO cgf(aa) VALUES (601)
INSERT INTO cgf(aa) VALUES (101)
INSERT INTO cgf(aa) VALUES (201)
INSERT INTO cgf(aa) VALUES (301)
INSERT INTO cgf(aa) VALUES (401)
INSERT INTO cgf(aa) VALUES (501)

CREATE TABLE wt(cc i)
INSERT INTO wt(cc) VALUES (501)
INSERT INTO wt(cc) VALUES (301)
INSERT INTO wt(cc) VALUES (101)
INSERT INTO wt(cc) VALUES (201)
INSERT INTO wt(cc) VALUES (401)
INSERT INTO wt(cc) VALUES (402)
INSERT INTO wt(cc) VALUES (403)
clos database

use cgf IN 0
use wt IN 0
SELECT wt
GO TOP

do while .not.eof()
   dele from cgf where wt.cc=cgf.aa
   skip
enddo
clos database
USE cgf
brow
2017-09-21 13:41
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
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
根据楼主的代码修改.楼主的错误在于使用时,没打开表,SQL 语句时,又没给出完整路径导致错误.
2017-09-21 13:43



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




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

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