| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1199 人关注过本帖
标题:“关于COPY TO 的一点疑问”的再讨论
只看楼主 加入收藏
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
结帖率:100%
收藏
已结贴  问题点数:100 回复次数:11 
“关于COPY TO 的一点疑问”的再讨论
在 "关于COPY TO 的一点疑问"这贴子下载了其一个数据表,发现了一个很有奇怪的现象,如下:

USE wjh2011
*1、这样没问题(记录号<=866)
go top
COPY next 866 TO tt FIELDS highm,rongjim DELIMITED WITH TAB
go top
COPY next 866 TO tt FIELDS highm,rongjim DELIMITED WITH TAB

*2、这样也没问题
COPY TO tt DELIMITED WITH TAB
go top
COPY TO tt DELIMITED WITH TAB
*3、这样有问题(记录号<=867),留意出错信息。与后面的是不一样的
go top
COPY next 867 TO tt FIELDS highm,rongjim DELIMITED WITH TAB &&不会出错
go top
COPY next 867 TO tt FIELDS highm,rongjim DELIMITED WITH TAB  &&出错
DELETE FILE tt.txt  &&注意这句子,出错后必须用上,不然下面的语句处理不了,也是奇怪之一
*4、这样有问题(记录号<=886),留意出错信息。与前面的是不一样的
go top
COPY next 886 TO tt FIELDS highm,rongjim DELIMITED WITH TAB
go top
COPY next 886 TO tt FIELDS highm,rongjim DELIMITED WITH TAB
DELETE FILE tt.txt &&注意这句子,出错后必须用上,不然下面的语句处理不了,也是奇怪之一

有兴趣的朋友,你们也下载这个数据表试试,到底是怎么回事?
wjh2011.rar (142.26 KB)


[ 本帖最后由 bccn0906 于 2014-1-20 15:10 编辑 ]
搜索更多相关主题的帖子: 数据表 记录 信息 
2014-01-20 15:08
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
试下 应该不会与数据表有关吧
2014-01-20 19:54
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
COPY next 867 TO tt FIELDS guanhao,highm,rongjim DELIMITED WITH TAB
第一个字段为字符型试试看!

认真看书学习,弄通Fox主义。
2014-01-20 20:29
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:0 
下载试试。
2014-01-20 22:57
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
收藏
得分:0 
注释:这样重复是没问题的,但没了那个 DELETE FILE tt.txt 就有问题

USE wjh2011

DELETE FILE tt.txt
COPY to tt FIELDS highm,rongjim DELIMITED WITH TAB

DELETE FILE tt.txt
COPY to tt FIELDS highm,rongjim DELIMITED WITH TAB

DELETE FILE tt.txt
COPY to tt FIELDS highm,rongjim DELIMITED WITH TAB


[ 本帖最后由 bccn0906 于 2014-1-21 09:39 编辑 ]
2014-01-21 09:38
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
DELETE FILE tt.txt    &&如果有的话
USE wjh2011
*********加上一个字符型字段试试看
COPY to tt FIELDS  guanhao,highm,rongjim DELIMITED WITH TAB
COPY to tt FIELDS  guanhao,highm,rongjim DELIMITED WITH TAB
COPY to tt FIELDS  guanhao,highm,rongjim DELIMITED WITH TAB
**************以下这样处理也没问题
SELECT TRANSFORM(highm),TRANSFORM(ROUND(rongjim*kk,0)) as yy FROM wjh2011 INTO cursor tt10
*!*    SELECT guanhao,highm,ROUND(rongjim*kk,0) as yy FROM wjh2011 INTO CURSOR tt10
SELECT tt10
 COPY  TO tt TYPE    DELIMITED WITH TAB

认真看书学习,弄通Fox主义。
2014-01-21 11:27
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
收藏
得分:0 
只想得知问题的真相,不是要解决什么问题。
作为一条指令,为什么一可,再不可。
2014-01-21 11:31
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:100 
問題在這裏:
DELIMITED
Creates a delimited file. A delimited file is an ASCII text file in which each record ends with a carriage return and line feed. The default field separator is a comma. Because character data can include commas, character fields are additionally delimited with double quotation marks.

Unless you specify otherwise, a .txt extension is assigned to all newly created DELIMITED files.


其實就是創建了隱藏的臨時文件,它有一個tt.dbf在執行期間被生成,而tt.txt被注冊了屬於這個表的。祇要不用delimited參數,就不會產生這種歸屬屬性。這條copy to指令内部有很多暗藏的動作,少用爲佳。這也正是我一向反對程序員過分依賴高級指令的原因——你根本就沒意識它在背後到底做了多少東西,以及有沒有把屁股擦乾净。

授人以渔,不授人以鱼。
2014-01-21 13:04
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用bccn0906在2014-1-21 11:31:55的发言:

只想得知问题的真相,不是要解决什么问题。
作为一条指令,为什么一可,再不可。

這其實不是一條指令,而是一個複雜的程序,隨著參數的不同,啓動不同的代碼塊,執行各種各樣的動作。不帶delimited參數,就不觸動那個動作,所以沒事。帶了with的輸出格式參數,也會根據不同的文件格式調用不同的代碼塊。這指令内部代碼起碼過千行。

授人以渔,不授人以鱼。
2014-01-21 13:44
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:0 
copy to tt.txt .. delimited with ..,可能导致文本占用。而 delete 可消除‘文本占用‘。 (当然,dbf 文件占用,无法用 delete 消除,仅供参考)


[ 本帖最后由 qingfameng 于 2014-1-21 14:42 编辑 ]
2014-01-21 14:16
快速回复:“关于COPY TO 的一点疑问”的再讨论
数据加载中...
 
   



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

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