搜索
编程论坛
→
数据库技术
→
『 VFP论坛 』
→ 带有参数的命令
标题:
带有参数的命令
只看楼主
hyz00001
等 级:
论坛游侠
威 望:
1
帖 子:168
专家分:137
注 册:2012-10-5
结帖率:
100%
楼主
已结贴
√
问题点数:20 回复次数:9
带有参数的命令
需要实现的功能比较简单,将现在已经打开的某一张表按照我指定的名字复制到指定位置。
我自己编写的代码如下:
弹出的错误提示为:“找不到变量cfile”
请给与指导,谢谢。
SELECT * FROM po
DO cv WITH cfile
PROCEDURE cv
PARAMETERS cfile
COPY TO 'd:\'- cfile TYPE CSV
RETURN
2014-06-20 13:07
hyz00001
等 级:
论坛游侠
威 望:
1
帖 子:168
专家分:137
注 册:2012-10-5
第
2
楼
得分:0
刚才经过研究,看是不是这样就ok?
CLOSE TABLES
USE po
CFILE ='item'
DO cv WITH cfile
PROCEDURE cv
PARAMETERS cfile
COPY TO 'd:\'- cfile TYPE CSV
RETURN
2014-06-20 13:17
hyz00001
等 级:
论坛游侠
威 望:
1
帖 子:168
专家分:137
注 册:2012-10-5
第
3
楼
得分:0
如果我希望在其他任何地方都能调用cv这个过程呢?
2014-06-20 13:19
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
4
楼
得分:20
命令中的cfile应用宏,并且把结果转换回字符串与'd:\'运算。正规的方法,应是先建立一个中间字符型变量filename,把路径和文件名拼接好,再按标准语法调用命令:COPY TO &filename TYPE CSV
适应性更强的写法是:COPY TO "&filename" TYPE CSV
支持长文件名,特别是
中间带空格
的文件名。
[
本帖最后由 TonyDeng 于 2014-6-20 13:22 编辑
]
授人以渔,不授人以鱼。
2014-06-20 13:20
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
5
楼
得分:0
以下是引用
hyz00001
在2014-6-20 13:19:23的发言:
如果我希望在其他任何地方都能调用cv这个过程呢?
把这个过程写在一个单独的PRG文件中,使用前先 SET PROCEDURE TO 该文件;或者此PRG的文件名与PROCEDURE名同名,而 SET PATH TO 搜索路径包含此PRG文件所在的文件夹。
授人以渔,不授人以鱼。
2014-06-20 13:25
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
6
楼
得分:0
小小提示:写一个软件系统,不必把所有PRG都放在同一个目录,应该分类管理,各有各独立的文件夹,比如通用的自定义过程和函数,就集中在一个文件夹中,而该程序自身独用的,就放在程序自身的目录树中,还应分模块归类,不必只有一个目录。系统和语言提供 SET PATH TO 这样的指令,不是没意义的。
授人以渔,不授人以鱼。
2014-06-20 13:31
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
7
楼
得分:0
最好少用DO...WITH,用与其他语言语法看起来更一致的proc_name(parameters_list)。前者默认是引用传递,在被调用过程和函数中可能会无意中修改实参的内容,发生不必要的问题,改用后者的赋值传参方式是较安全的。
授人以渔,不授人以鱼。
2014-06-20 13:41
hyz00001
等 级:
论坛游侠
威 望:
1
帖 子:168
专家分:137
注 册:2012-10-5
第
8
楼
得分:0
完美的解决了 问题。
谢谢。
2014-06-20 13:44
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
9
楼
得分:0
尽量用4楼说的标准语法格式书写命令,特别是复杂的SQL SELECT查询语句。把每一子项对应到一个可以跟踪内容的字符串上,对排查错误有莫大的帮助,不要把运算过程统统写到命令中,一条语句占用两行已经难以忍受,但我看到很多人乐于写出十多行的复杂语句,估计是一次性使用的,作以后决不会跟踪排错的打算(当然出问题了到网上找“大神”也是路径之一)。
授人以渔,不授人以鱼。
2014-06-20 13:55
10
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-433176-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.024100 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved