| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1097 人关注过本帖
标题:缺少操作数
只看楼主 加入收藏
五毒外星人
Rank: 2
等 级:论坛游民
威 望:1
帖 子:59
专家分:87
注 册:2014-5-7
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:7 
缺少操作数
我运行一个小程序时,提示缺少操作数,请高人指点!
CLEAR
bm1=INPUTBOX("请输入第一个表名:","请输入数据")
bm2=INPUTBOX("请输入第二个表名:","请输入数据")
SELECT &bm2.*,&bm1.* FROM &bm2 FULL JOIN &bm1 ON &bm1.ksh=&bm2.ksh INTO TABLE 新表
use 新表
brow
RETURN

[ 本帖最后由 五毒外星人 于 2014-10-16 15:06 编辑 ]
2014-10-16 14:40
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:10 
SELECT a.*,b.* FROM (bm2) a FULL JOIN (bm1) b ON A.ksh=B.ksh INTO TABLE 新表
select 新表
brow


[ 本帖最后由 kiff 于 2014-10-16 14:50 编辑 ]
2014-10-16 14:47
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
注意  .  是宏替代的结束符  如真想要用就应是这样 &bm2..*   
2014-10-16 15:02
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
还有一个原因,你数据表名可能用了数字开头
2014-10-16 15:06
五毒外星人
Rank: 2
等 级:论坛游民
威 望:1
帖 子:59
专家分:87
注 册:2014-5-7
收藏
得分:0 
回复 2 楼 kiff
看来使用表别名就能解决问题!

虚心学习,不断进步!
2014-10-16 15:10
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
以下是引用五毒外星人在2014-10-16 15:10:05的发言:

看来使用表别名就能解决问题!
可能你用了数字开头的表文件名了,这样要用别名的
2014-10-16 15:12
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:650
专家分:2156
注 册:2014-2-7
收藏
得分:6 
楼主的代码有以下几个问题:
1. 如果用户没有输入表名而是单击了“取消”怎么办?所以应该对输入的表名进行检测
2. 宏替换的使用有问题,如:“&bm1.ksh”应改为“&bm1..ksh”,其中:第一个圆点是宏替换变量与后面代码的分隔符,第二个圆点是表名与字段名之间的分隔符。
3. 当要取两个表的所有字段时,无需“表1.*,表2.*”,直接用“*”就可以了。
4. Browse 后面不能加表名,所以“Browse 新表”是错误的。在执行完“Select...Into Table 新表”后,系统会自动打开“新表”,并切换到其所在工作区,只需 Browse 即可。
程序代码:
CLEAR
bm1=INPUTBOX("请输入第一个表名:","请输入数据")
if empty(bm1)
    return
endif
bm2=INPUTBOX("请输入第二个表名:","请输入数据")
if empty(bm2)
    return
endif
SELECT * FROM &bm2 FULL JOIN &bm1 ON &bm1..ksh=&bm2..ksh INTO TABLE 新表
BROWSE


[ 本帖最后由 liuxingang28 于 2014-10-16 15:17 编辑 ]

泉城飞狐
2014-10-16 15:15
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
教一教你调试:

你写cCommand = "SELECT &bm2.*,&bm1.* FROM &bm2 FULL JOIN &bm1 ON &bm1.ksh=&bm2.ksh INTO TABLE 新表",然后messagebox(cCommand)看看生成的命令有什么问题,自然知道答案。

授人以渔,不授人以鱼。
2014-10-16 21:48
快速回复:缺少操作数
数据加载中...
 
   



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

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