| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1270 人关注过本帖
标题:VFP+sql麻烦高手帮忙解决一下,谢谢!
只看楼主 加入收藏
degidt023023
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2021-6-30
结帖率:25%
收藏
 问题点数:0 回复次数:9 
VFP+sql麻烦高手帮忙解决一下,谢谢!
图片附件: 游客没有浏览图片的权限,请 登录注册


图片附件: 游客没有浏览图片的权限,请 登录注册


a1=thisform.text1.Value
a2=thisform.text2.Value
a3=ALLTRIM(thisform.text3.Value)
a4=
a5=
a6=
a7=ALLTRIM(thisform.text7.Value)
a8=alltrim(thisform.text8.Value)
a9=ALLTRIM(thisform.edit1.Value)
a10=ALLTRIM(thisform.text10.Value)
a11=thisform.text11.Value
a12=ALLTRIM(thisform.text12.Value)

sqlexec(nHandle,"select * from shengchanjihua ","生产计划")
SELECT 生产计划
GO bottom
SCATTER TO b
c1=b(1)
d=c1+1
c="VBT-SJ-"+ALLTRIM(STR(d))

sqlexec(nHandle,"insert into xiaoshoudingdan (序号,销售订单编号,机器型号,机器类型,机器吨数,机器工作模式,客户名称,客户国家,;
客户公司名称,销售员,销售日期,订单完成情况);
values(?a1,'&a2','&a3','&a4','&a5','&a6','&a7','&a8','&a9','&a10',?a11,'&a12')")

sqlexec(nHandle,"insert into shengchanjihua (序号,销售订单编号,生产计划编号,机器类型,机器吨数,机器工作模式,销售员,;
生产完成情况)values(?a1,'&a2','&c','&a4',?a5,'&a6','&a10','待生产')")

hytizj.pageframe1.page1.init
thisform.Release

图片附件: 游客没有浏览图片的权限,请 登录注册


问题是:客户公司名称,超过9个汉字就报错,8个字就不报错,我也是醉了,本人水平有限,麻烦高手帮忙解决一下
搜索更多相关主题的帖子: 客户 机器 销售 thisform Value 
2022-05-24 10:31
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1094
专家分:2693
注 册:2015-12-30
收藏
得分:0 
应该不仅是客户名称超长造成,其他变量超长了也会报这个错
问题出在这个句子上
insert into xiaoshoudingdan (序号,销售订单编号,机器型号,机器类型,机器吨数,机器工作模式,客户名称,客户国家,;
客户公司名称,销售员,销售日期,订单完成情况);
values(?a1,'&a2','&a3','&a4','&a5','&a6','&a7','&a8','&a9','&a10',?a11,'&a12')"

用变量拼接这个SQL语句,如:
xsql = "insert into xiaoshoudingdan (序号,销售订单编号,机器型号,机器类型,机器吨数,机器工作模式,客户名称,客户国家,
客户公司名称,销售员,销售日期,订单完成情况) values("
xsql = xsql + "'&a1'"
xsql = xsql + ",'&a2',"
...
xsql = xsql + ",'&a12')"
sqlexec(nHandle,xsql)

这样试下看看
2022-05-24 10:43
degidt023023
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2021-6-30
收藏
得分:0 
以下是引用laowan001在2022-5-24 10:43:57的发言:

应该不仅是客户名称超长造成,其他变量超长了也会报这个错
问题出在这个句子上
insert into xiaoshoudingdan (序号,销售订单编号,机器型号,机器类型,机器吨数,机器工作模式,客户名称,客户国家,;
客户公司名称,销售员,销售日期,订单完成情况);
values(?a1,'&a2','&a3','&a4','&a5','&a6','&a7','&a8','&a9','&a10',?a11,'&a12')"

用变量拼接这个SQL语句,如:
xsql = "insert into xiaoshoudingdan (序号,销售订单编号,机器型号,机器类型,机器吨数,机器工作模式,客户名称,客户国家,
客户公司名称,销售员,销售日期,订单完成情况) values("
xsql = xsql + "'&a1'"
xsql = xsql + ",'&a2',"
...
xsql = xsql + ",'&a12')"
sqlexec(nHandle,xsql)

这样试下看看

感谢版主的回答,我最开始也是怀疑长度过长,我也想到了拼接的方法,结果还是一样,醉得很,我先把它拆解开,就行了,没办法,就用笨办法
sqlexec(nHandle,"insert into xiaoshoudingdan (序号,销售订单编号)values(?a1,'&a2')")
sqlexec(nHandle,"update xiaoshoudingdan set 机器型号='&a3' where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 机器类型='&a4' where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 机器吨数='&a5' where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 机器工作模式='&a6' where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 客户名称='&a7' where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 客户国家='&a8' where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 客户公司名称='&a9' where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 销售员='&a10' where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 销售日期=?a11 where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 订单完成情况='&a12' where 序号="+a1)
2022-05-24 11:35
cjc1010
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:65
专家分:195
注 册:2006-4-16
收藏
得分:0 
改一下 客户公司名称 的字段数据类型试试

[此贴子已经被作者于2022-5-24 11:47编辑过]

2022-05-24 11:44
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
values(?a1,'&a2','&a3','&a4','&a5','&a6','&a7','&a8','&a9','&a10',?a11,'&a12')"
a1,你直接参数
a2~a12,你用宏做什么,为什么不直接参数 ?a2
2022-05-24 11:53
degidt023023
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2021-6-30
收藏
得分:0 
以下是引用cjc1010在2022-5-24 11:44:03的发言:

改一下 客户公司名称 的字段数据类型试试

谢谢你的提醒,不过我试过了,不行
2022-05-24 11:56
zhken
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:285
专家分:620
注 册:2012-9-21
收藏
得分:0 
用一小部分数据试试,或者检查数据里是否有包含特殊字符
2022-05-24 12:26
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1094
专家分:2693
注 册:2015-12-30
收藏
得分:0 
以下是引用degidt023023在2022-5-24 11:35:59的发言:


感谢版主的回答,我最开始也是怀疑长度过长,我也想到了拼接的方法,结果还是一样,醉得很,我先把它拆解开,就行了,没办法,就用笨办法
sqlexec(nHandle,"insert into xiaoshoudingdan (序号,销售订单编号)values(?a1,'&a2')")
sqlexec(nHandle,"update xiaoshoudingdan set 机器型号='&a3' where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 机器类型='&a4' where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 机器吨数='&a5' where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 机器工作模式='&a6' where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 客户名称='&a7' where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 客户国家='&a8' where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 客户公司名称='&a9' where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 销售员='&a10' where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 销售日期=?a11 where 序号="+a1)
sqlexec(nHandle,"update xiaoshoudingdan set 订单完成情况='&a12' where 序号="+a1)

不能够啊,我就是那样拼接的SQL字符串,然后执行,字段有几十个的,都没问题
建议你检查每个aN变量的内容,看是否有什么不合适的内容
也可以拼接全部字段,然后一个一个的去掉,直到不出错为止(或者反之,先拼接一个字段,然后是两个字段,...直到全部或出错)
2022-05-24 16:11
厨师王德榜
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:199
帖 子:995
专家分:4966
注 册:2013-2-16
收藏
得分:0 
还是尽量不要用中文做字段名和表名,这是我多年一点粗浅的经验.
等你实施以后,就知道了,后期毛病多.
如果只是编着玩玩,当我没说.
2022-05-24 23:20
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:527
专家分:1281
注 册:2010-1-11
收藏
得分:0 
复制到word,语句“:”后面没有回车换行。
图片附件: 游客没有浏览图片的权限,请 登录注册
2022-05-25 08:50
快速回复:VFP+sql麻烦高手帮忙解决一下,谢谢!
数据加载中...
 
   



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

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