| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 722 人关注过本帖
标题:VFP 6.0 INSERT INTO 表 问题
只看楼主 加入收藏
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
结帖率:98.98%
收藏
已结贴  问题点数:10 回复次数:11 
VFP 6.0 INSERT INTO 表 问题
表A1,表S2
结构一样,我想把表A1的记录全部插入S2去,表A1有1500记录
目前只这样,
SELECT 1
USE S2
SELECT 2
USE A1

SELECT 2
GO TOP
DO WHILE !EOF()
BH=编号
QH=区号
LB=类别
LH=楼号
FH=房号
YZ=业主
DJ=电单价
SJ=水单价
GL=管理费
LJ=垃圾费
BZ=备注
QJ=DATE(2015,03,01)
INSERT INTO S2(编号,区号,类别,楼号,房号,业主,电单价,水单价,管理费,垃圾费,备注,费用期间) VALUES(BH,QH,LB,LH,FH,YZ,DJ,SJ,GL,LJ,BZ,QJ)
SKIP
ENDDO
SELECT S1
BROW

没别的方法的吗?
我在网上查到,好像有说这个,
INSERT INTO 表1 SELECT * 表2 WHERE ,,,,,
我怎么试都不行的,
求指点?

搜索更多相关主题的帖子: 记录 管理费 网上 
2015-03-29 20:31
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:2 
INSERT INTO 表1 SELECT * 表2 WHERE ,,,,,
非VFP6.0版本命令,7.0、8.0版本(可能有)没用过,VFP9.0中有

[ 本帖最后由 sdta 于 2015-3-29 21:28 编辑 ]

坚守VFP最后的阵地
2015-03-29 21:01
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:1 
DO WHILE ENDDO 命令(用这个命令是万般无耐,因为你不知道要执行多少个循环的情况下才使用)的效率比 FOR ENDFOR 、SCAN ENDSCAN 低,能不用少用。
因为是新手,帮助文件可能没系统的看过,所学知识都是从网上零乱的搜来的,代码能写成这样不错了。

如果两个表的结构完全相同,看下下面的代码执行效率如何(不明白的命令,看帮助文件中的相关内容)
程序代码:
Close datebases
Select 0
Use A1
Scan
    Scatter Memvar
    Insert Into S2 From Memvar && 此时表已经自动打开 
EndScan
Select S2
Browse

坚守VFP最后的阵地
2015-03-29 21:16
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:0 
结构一样,直接 APPEND FROM 可以了吧?
2015-03-29 21:47
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:1 
QJ=DATE(2015,03,01)
这个数据是那来的,是原表中的吗
APPEND FROM 命令还有一个好处,就是可以把字符型日期追加到日期型日期的字段中(经过测试)

[ 本帖最后由 sdta 于 2015-3-29 22:22 编辑 ]

坚守VFP最后的阵地
2015-03-29 21:54
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:2 
USE S2
appe from A1
2015-03-29 23:41
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
对不起,我说错了,
表不是完全一样,是我要的字段的类型和长度一样。
2015-03-30 10:47
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:1 
字段名和类型相同的就可以使用append命令添加的。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2015-03-30 10:52
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
收藏
得分:1 
以下是引用mywisdom88在2015-3-29 20:31:25的发言:

表A1,表S2
结构一样,我想把表A1的记录全部插入S2去,表A1有1500记录
目前只这样,
SELECT 1
USE S2
SELECT 2
USE A1

SELECT 2
GO TOP
DO WHILE !EOF()
BH=编号
QH=区号
LB=类别
LH=楼号
FH=房号
YZ=业主
DJ=电单价
SJ=水单价
GL=管理费
LJ=垃圾费
BZ=备注
QJ=DATE(2015,03,01)
INSERT INTO S2(编号,区号,类别,楼号,房号,业主,电单价,水单价,管理费,垃圾费,备注,费用期间) VALUES(BH,QH,LB,LH,FH,YZ,DJ,SJ,GL,LJ,BZ,QJ)
SKIP
ENDDO
SELECT S1
BROW

没别的方法的吗?
我在网上查到,好像有说这个,
INSERT INTO 表1 SELECT * 表2 WHERE ,,,,,
我怎么试都不行的,
求指点?
从楼主的程序来看,S2表只有一个字段“费用期间”是原表没有,你可以试着用下:
use s2
appe from a1 &&如果A1.DBF与S2.DBF不在同一文件夹下,就要在A1前面加上路径
*append from 只追加两表中字段名和类型相同的字段内容
repl all 费用期间 with {^2015.03.01}

[ 本帖最后由 wangzhiyi 于 2015-3-31 14:05 编辑 ]
2015-03-31 14:04
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
好了,原来,还可以选择字段的。
APPEND FROM A1 FIELDS 编号,区号,类别,楼号,房号,业主,电单价,水单价,管理费,垃圾费,备注 FOR A1.启用=.T.

1条命令就完成了,不知道快了多少。
但这个有个事,怎么我这个FIELDS 编号,区号,类别,楼号,房号,业主,中的字段,不需要带A1,而FOR 后面的启用要带 A1.启用,要不就提示找不到变量启用。。


2015-03-31 16:35
快速回复:VFP 6.0 INSERT INTO 表 问题
数据加载中...
 
   



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

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