| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 800 人关注过本帖
标题:[【求助】请各位大侠帮忙看看sql语句为何通不过?多谢!!!
只看楼主 加入收藏
YTZN
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2012-10-7
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
[【求助】请各位大侠帮忙看看sql语句为何通不过?多谢!!!
con=SQLConnect("sjy1","sa","123456789")
If con<0
    messagebox('连接失败,请稍后再试!',0+16)
    retu
endif

 con1="SELECT "
 con1=con1+"X销售分类任务.时间, X销售分类任务.警,"
 con1=con1+"X销售分类任务.数量, X销售分类任务.车牌号,"
*con1=con1+"X销售分类任务.备注, X销售分类任务.经手人,"
*con1=con1+"X销售分类任务.客施, X销售分类任务.合积分,"
*con1=con1+"X销售分类任务.大类, X销售分类任务.MR修改,"
*con1=con1+"X销售分类任务.物流, X销售分类任务.项目名称,"
*con1=con1+"X销售分类任务.车间, X销售分类任务.责任部门,"
*con1=con1+"X销售分类任务.库管, X销售分类任务.施工备注,"
*con1=con1+"X销售分类任务.物料, X销售分类任务.项目编号,"
*con1=con1+"X销售分类任务.施工, X销售分类任务.施工部门,"
*con1=con1+"X销售分类任务.编号, X销售分类任务.销售编号,"
*con1=con1+"X销售分类任务.销售, X销售分类任务.营销认责任,"
*con1=con1+"X销售分类任务.营销, X销售分类任务.开发认责任,"
*con1=con1+"X销售分类任务.开发, X销售分类任务.其它认责任,"
*con1=con1+"X销售分类任务.其它, X销售分类任务.公司认责任,"
*con1=con1+"X销售分类任务.公司, X销售分类任务.月施工统计,"
 con1=con1+"X销售分类任务._Identify, X客户库表.车型"

con1=con1+" FROM x销售分类任务 LEFT OUTER JOIN X客户库表  ON  x销售分类任务.车牌号 = X客户库表.车牌号 "

lnRe1=SQLExec(con,"&con1","x销售分类任务_ls")
If lnRe1<0
    messagebox('运行失败,请再试!',0+16)
    retu
EndIf
brow

现在上面语句能通过,但打*号的去掉任何一行的*却通不过,错误提示:“命令中含有不能识别的短语或关键字”
把*行上面两行打上*号,下面去掉任何两行的*号也能通过
是有长度限制?请大侠指导。
搜索更多相关主题的帖子: sql语句 经手人 物流 项目 
2014-04-02 20:32
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:2 
直接写不就行了吗
不能运行的原因,可能是SQL命令超长,解决方法:
将写好的SQL代码放入下面命令中
TEXT
SQL命令代码
ENDTEXT
具体用法看帮助文件

[ 本帖最后由 sdta 于 2014-4-2 21:51 编辑 ]

坚守VFP最后的阵地
2014-04-02 21:43
YTZN
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2012-10-7
收藏
得分:0 
回复 2楼 sdta
多谢sdta!

我已经回家了,没法连sql,明天试试

[ 本帖最后由 YTZN 于 2014-4-2 21:56 编辑 ]
2014-04-02 21:50
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:2 
笨办法:
把该SQL命令分成若干段,分别保存在N个变量中,然后再拼在一起
如:
A='SELECT '
B='XM '
C=' FROM CC'
D=' INTO CURSOR MMM'
E=A+B+C+D
&E

坚守VFP最后的阵地
2014-04-02 22:00
YTZN
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2012-10-7
收藏
得分:0 
回复 4楼 sdta
多谢指导,我慢慢试。
2014-04-03 09:32
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:2 
分段 拼在一起 是不错的方法
2014-04-03 09:35
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:4 
我觉得问题不出在字符串变量的长度上,因为FoxPro 9.0规定一个字符串内存变量可容纳16777184个字符,你所贴的例子中远远没达到这个数。楼主,你应该把语句执行时通不过的提示信息贴上来,这样才好找原因。另外,你SQLEXEC()中的第二个参数进行宏代换以后再用引号括起来,不是多此一举么?直接把变量名写上不就行了么——SQLExec(con,con1,"x销售分类任务_ls")


[ 本帖最后由 taifu945 于 2014-4-3 09:42 编辑 ]
2014-04-03 09:39
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:2 
原样帖上这段代码看看

坚守VFP最后的阵地
2014-04-03 09:58
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:4 
楼主,你的问题可望解决,不要用宏替换,直接在第二个参数处写上变量名,也不要把变量名括在引号中,也就是7楼最后我写的格式。
2014-04-03 09:58
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:2 
去掉代码前面的所有注释,执行下面的代码,看是否能正常执行。

con1=con1+" FROM x销售分类任务 LEFT OUTER JOIN X客户库表  ON  x销售分类任务.车牌号 = X客户库表.车牌号 "
EXECSCRIPT(con1)

坚守VFP最后的阵地
2014-04-03 10:03
快速回复:[【求助】请各位大侠帮忙看看sql语句为何通不过?多谢!!!
数据加载中...
 
   



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

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