| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1275 人关注过本帖
标题:用SQL ALLTE tabe 增加字段语句中用表名时为什么用到&宏时报错
只看楼主 加入收藏
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:525
专家分:1278
注 册:2010-1-11
收藏
得分:3 
数据表名称最好不要直接用数字命名,以免混乱!
2015-07-27 16:27
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:3 
我刚测试了。
把DBF放在桌面的1个目录,
1、当我的目录名称中间不带空格时,用三中方法都可以打开表
bmk=GETFILE('DBF','接收成绩库','',0,'选择要接收的教师成绩库0682.dbf')
USE (BMK)  &&OK
USE &BMK   &&OK
USE &BMK.  &&OK,多了个点
USE "&BMK"   &&OK
USE "&BMK."  &&OK,多了个点
2、当我的目录名称中间带空格时
USE (BMK)  &&OK
USE &BMK   &&错误
USE &BMK.  &&错误,多了个点
USE "&BMK"   &&OK
USE "&BMK."  &&OK,多了个点
3、当名称长度在84时,不带空格,OK
4、当名称长度在260时,不带空格,OK
名称带空格,影响到 &宏
2015-07-27 17:54
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
3、当名称长度在84时,不带空格,OK
4、当名称长度在260时,不带空格,OK
你指的名称长度84时或260是指什么?是不是len()测出来的长度
2015-07-27 18:25
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
张洪举VFP9指南中提到&不支持长路径或长文件,要出错,道理没有讲.
2015-07-27 18:44
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:3 
观察一下 bmk 的值应该明白吧?
? bmk 或 messagebox(bmk) 看看

问题:在语句中,空格 表示什么?
2015-07-27 19:53
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:3 
空格对识别路径影响大,前后空格也应该去掉吧。
2015-07-27 21:17
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:3 
以下是引用sylknb在2015-7-27 18:44:10的发言:

张洪举VFP9指南中提到&不支持长路径或长文件,要出错,道理没有讲.

张洪举的书写的虽然很权威,但有个别地方还是说得不够精确,比如你说的这个问题。空格在VFP的语句中通常表示分隔符,那么你宏替换出来的字符中带了空格,而又不用引号引起,这空格就被当作分隔符,而不是文件名了。你可能要问:小括号括起的变量也没用引号引起,怎么就能正确识别?因为用小括号括起后,被VFP认为是“名表达式”。既然是名表达式么,这里面的内容整个就是一名字了,其中的空格也就不会被理解成分隔符了。至于宏代换变量后的那个点,在此处有没有都不影响最后结果。它主要用于隔离宏替换变量和后面紧跟的可能影响该变量识别的其它字符。
2015-07-28 23:02
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
以下是引用taifu945在2015-7-28 23:02:06的发言:


张洪举的书写的虽然很权威,但有个别地方还是说得不够精确,比如你说的这个问题。空格在VFP的语句中通常表示分隔符,那么你宏替换出来的字符中带了空格,而又不用引号引起,这空格就被当作分隔符,而不是文件名了。你可能要问:小括号括起的变量也没用引号引起,怎么就能正确识别?因为用小括号括起后,被VFP认为是“名表达式”。既然是名表达式么,这里面的内容整个就是一名字了,其中的空格也就不会被理解成分隔符了。至于宏代换变量后的那个点,在此处有没有都不影响最后结果。它主要用于隔离宏替换变量和后面紧跟的可能影响该变量识别的其它字符。
解释还是很有道理的。
2015-07-29 09:18
厨师王德榜
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:199
帖 子:989
专家分:4966
注 册:2013-2-16
收藏
得分:3 
可参考一下我的代码,我们的用户使用习惯不同,有的人就是喜欢把文件放在桌面上,作为写代码的,应该给用户想要的,而不是要求用户:“你最好别把文件放桌面上”,我们不能去干涉用户的使用习惯,甚至,我们应该迁就用户的使用习惯,用户是上帝,你说是不是?
以下是我的模块里常用的处理文件名的代码,如果文件中含有空格,可以自动加限定符,而且不会重复添加。
程序代码:
bmk=GETFILE('DBF','打开表文件','',0,'noname1.DBF')
IF SPACE(1)$bmk THEN 
    bmk=IIF(LEFT(bmk,1)='"',bmk,'"'+bmk)+IIF(RIGHT(bmk,1)='"','','"')
ENDIF 
IF NOT EMPTY(bmk) THEN 
    use   &bmk. in 0 alias  bmk 
ENDIF 


[ 本帖最后由 厨师王德榜 于 2015-7-29 15:35 编辑 ]
2015-07-29 15:32
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
bmk=IIF(LEFT(bmk,1)='"',bmk,'"'+bmk)+IIF(RIGHT(bmk,1)='"','','"')
能介释一下此语句?好吗?
2015-08-05 11:45
快速回复:用SQL ALLTE tabe 增加字段语句中用表名时为什么用到&宏时报错
数据加载中...
 
   



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

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