| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2886 人关注过本帖
标题:求助:如何将一个 dbf 按某个字段分成多个 dbf(不是用命令那种)
只看楼主 加入收藏
chaojicai
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2020-5-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
求助:如何将一个 dbf 按某个字段分成多个 dbf(不是用命令那种)
一个dbf表有上万条记录,都有字段销售代码 xsdm ,01,02,03,04···100 ,怎样根据xsdm将这上万条记录快速分成100个dbf表,不用copy to *** for xsdm=‘01’ 这种,跪求
搜索更多相关主题的帖子: 字段 dbf 多个 记录 命令 
2020-05-27 11:57
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9845
专家分:27213
注 册:2012-2-5
收藏
得分:7 
用SQL命令

坚守VFP最后的阵地
2020-05-27 12:12
chaojicai
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2020-5-25
收藏
得分:0 
回复 2楼 sdta
请教一下具体的命令,谢谢
2020-05-27 12:52
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9845
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用chaojicai在2020-5-27 12:52:56的发言:

请教一下具体的命令,谢谢

楼主为什么不用COPY命令,这个命令是最简单的了
为什么要建100个表

坚守VFP最后的阵地
2020-05-27 13:15
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9845
专家分:27213
注 册:2012-2-5
收藏
得分:0 
select * from 原表 where alltrim(xsdm) == "01"

坚守VFP最后的阵地
2020-05-27 13:21
chaojicai
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2020-5-25
收藏
得分:0 
回复 4楼 sdta
我是想提升效率,批量的生成100个DBF表,然后分发给不同的人 如果 copy for xsdm="01" to 01  
                                                              copy for xsdm="02" to 02 .....copy for xsdm="100" to 100   太耗时了
2020-05-27 14:13
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9845
专家分:27213
注 册:2012-2-5
收藏
得分:0 
FOR i = 1 TO 100
    SELECT * FROM aa WHERE ALLTRIM(xsdm) == PADL(i, 3, "0") INTO TABLE ("aa" + PADL(i, 3, "0"))
ENDFOR

[此贴子已经被作者于2020-5-27 14:43编辑过]


坚守VFP最后的阵地
2020-05-27 14:16
厨师王德榜
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:199
帖 子:995
专家分:4966
注 册:2013-2-16
收藏(1)
得分:7 
类似的事情我以前做过,当时也是一个DBF分发给多个驻外机构,不过,我这里的“分发”,是把拆分出来的DBF放到不同的文件夹中去。而这些文件夹,已经置于ftp://...之下的子文件夹中,这样每个驻外机构登陆FTP之后,就只能查看和下载自己文件夹的东西,从而实现了“分发”。具体步骤是:(比如DBF中有一个字段叫【驻外分公司】,有“北京”、“上海”、“广州”等数据,同时,与之对应的,在FTP管理的文件夹中,也有“北京”、“上海”、“广州”等子文件夹),参考代码是凭回忆写的,大概是这个样子.
程序代码:
* 假定此时数据表 Tab1 已经打开了
local cFile as string ,cFGS as string
select distinct 驻外分公司 from Tab1 into cursor tmp1
select tmp1
scan 
    cFGS = rtrim(tmp1.驻外分公司)
    cFile = "E:\ftp\" + cFGS + "\通报数据" + cFGS + ".xls" 
    select * from Tab1 where Tab1.驻外分公司 = cFGS into cursor tmp2
    if recc('tmp2') > 0 then 
        if file(cFile) then 
            dele file &cFile
        endif
        select tmp2
        copy to &cFile type xl5 
    endif
    use in tmp2
endscan
use in tmp1


[此贴子已经被作者于2020-5-27 14:41编辑过]

2020-05-27 14:39
josenko
Rank: 2
等 级:论坛游民
威 望:1
帖 子:10
专家分:34
注 册:2020-4-30
收藏
得分:7 
回复 7楼 sdta
学习了,循环+PAD
2020-05-29 08:05
快速回复:求助:如何将一个 dbf 按某个字段分成多个 dbf(不是用命令那种)
数据加载中...
 
   



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

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