标题:VFP+sql麻烦高手帮忙解决一下,谢谢!
取消只看楼主
degidt023023
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2021-6-30
结帖率:25%
 问题点数:0 回复次数:2 
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
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
degidt023023
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2021-6-30
得分:0 
以下是引用cjc1010在2022-5-24 11:44:03的发言:

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

谢谢你的提醒,不过我试过了,不行
2022-05-24 11:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509160-1-1.html




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

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