| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1847 人关注过本帖
标题:如何通过变量给copy to命令添加参数
只看楼主 加入收藏
kinvanhon
Rank: 5Rank: 5
来 自:战争学院
等 级:贵宾
威 望:16
帖 子:99
专家分:258
注 册:2014-10-7
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
如何通过变量给copy to命令添加参数
在写一个函数,函数有两个可选参数,分别是字段字符串和条件字符串,想实现动态的copy to array varArray (fields field) (for condition),现在遇到的问题是函数中无论是宏替换还是名称表达式都提示不可识别的命令(但在命令窗口中红色部分使用宏替换运行成功且结果正确),尝试拼接命令字符串使用execscript函数,虽然?execscript("&cmd")显示.t.,但后续的过程中会提示找不到变量varArray(实际应该没执行成功?),求高手们指点

更正一下,是copy到数组

[此贴子已经被作者于2015-12-11 12:28编辑过]

搜索更多相关主题的帖子: 字符串 如何 动态 
2015-12-11 11:42
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:7 
Select (fields field) ... Where for condition Into Table tablename ....

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2015-12-11 11:48
kinvanhon
Rank: 5Rank: 5
来 自:战争学院
等 级:贵宾
威 望:16
帖 子:99
专家分:258
注 册:2014-10-7
收藏
得分:0 
回复 2楼 aaaaaa
谢谢,这是个解决方法,还是想看看copy to能否实现此效果
2015-12-11 11:52
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:6 
可以
字段列表要用EVALUATE()
条件要用单双引号

坚守VFP最后的阵地
2015-12-11 12:16
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:7 
CREATE CURSOR t1 (f1 c(10),f2 c(10),f3 c(10))
INSERT INTO t1 (f1,f2,f3) VALUES ('1','2','3')
INSERT INTO t1 (f1,f2,f3) VALUES ('A','B','D')
str1="f1,f3"
str2="F1='A'"
SELECT T1
COPY TO C:\TMP1 FIELDS &STR1. FOR &STR2.
EXECSCRIPT("COPY TO C:\TMP2 FIELDS "+STR1+" FOR "+STR2)
SELECT &str1. FROM T1 INTO TABLE C:\TMP3 WHERE &str2.
2015-12-11 12:18
kinvanhon
Rank: 5Rank: 5
来 自:战争学院
等 级:贵宾
威 望:16
帖 子:99
专家分:258
注 册:2014-10-7
收藏
得分:0 
回复 5楼 kiff
嘿嘿,这样不行的,我那两个参数是可选的,而且可能是多个字段多个条件,中间会有空格,你这样写的话也可能会出错

[此贴子已经被作者于2015-12-11 12:33编辑过]

2015-12-11 12:26
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
Create Cursor t1 (F1 C(10), F2 C(10), F3 C(10))
Insert Into T1 Values ('1','2','3')
Insert Into T1 Values ('1','B','D')
Insert Into T1 Values ('A','B','D')
Insert Into T1 Values ('A','B','3')
=Copy2Arr("F2, F3", [F1 > '1'])  && 有条件
*!*    =Copy2Arr("F2, F3", [])  && 无条件


Function Copy2Arr(Fld As Character, Condition As Character)
    lcCond = Iif(Empty(Condition), "", "For " + Condition)
    Copy To Array MyArr Fields &Fld &lcCond
    Clear
    List Memory Like MyArr
Endfunc

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2015-12-11 13:47
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
=Copy2Arr("F1, F2, F3", [F1 > '1' And F3 > '3' ])  && 多条件

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2015-12-11 13:52
kinvanhon
Rank: 5Rank: 5
来 自:战争学院
等 级:贵宾
威 望:16
帖 子:99
专家分:258
注 册:2014-10-7
收藏
得分:0 
解决了,之前我是把copy to 后面的fields和for两个关键字放到字段和条件字符串中了,现在是这样Copy To Array varArray Fields &varField For &varCondition,当未给定字段和条件参数时varField默认为"*",varCondition默认为"1=1",谢谢以上的回复。
2015-12-11 14:08
快速回复:如何通过变量给copy to命令添加参数
数据加载中...
 
   



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

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