| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1957 人关注过本帖
标题:又遇上新问题了---update更新数值型字段
只看楼主 加入收藏
lgp740401
Rank: 1
等 级:新手上路
帖 子:52
专家分:5
注 册:2008-5-18
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:9 
又遇上新问题了---update更新数值型字段
我想在vfp中用一个从sql上取下的表A去更新另一个从sql上取下的表B(多字段,有字符型,数值型)

1.先求出各字段的值,把数值型搞成字段型(用cast as),
If    Type("lc更新字段")='C' And !Empty(lc更新字段)
      zlc更新字段=''
      For i=1 To Getwordcount(lc更新字段,",")
            llc更新字段=Alltrim(Getwordnum(lc更新字段,i,","))
            ll更新值=Iif(Type("&llc更新字段")<>"C",Alltrim(Cast(&llc更新字段 As Char(254))),Alltrim(&llc更新字段))
            zlc更新字段=Iif(Empty(zlc更新字段),llc更新字段+"='"+ll更新值+"'",zlc更新字段+","+llc更新字段+"='"+ll更新值+"'")
      Endfor
ENDIF  &&&zlc更新字段="fcode='zzz14.0',thick='14.0',......
   lcmd="update 表a set "+zlc更新字段 &&&这样lcmd语句没提示错,全是字符型
   EXECSCRIPT(lcmd) &&&提示出错:类型错误,因thick是数值型
2. 用update 表a set (lc更新字段) select   lc更新字段   from 表b
提示语法错误?这sql访问倒是没问题,在vfp中用不上吗?
向各位大侠求解!!!
搜索更多相关主题的帖子: 更新 数值 字段 sql 提示 
2017-10-20 18:12
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:20 
VFP中命令没有下面这样写的,看下帮助文件中的用法
update 表a set (lc更新字段) select   lc更新字段   from 表b

坚守VFP最后的阵地
2017-10-20 18:43
lgp740401
Rank: 1
等 级:新手上路
帖 子:52
专家分:5
注 册:2008-5-18
收藏
得分:0 
回复 2楼 sdta
你遇到过这样的问题(更新本地表的数值、字符混合型多字段(至少12个以上)?
2017-10-20 18:50
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用lgp740401在2017-10-20 18:50:03的发言:

你遇到过这样的问题(更新本地表的数值、字符混合型多字段(至少12个以上)?

至少12个以上 是什么意思

坚守VFP最后的阵地
2017-10-20 19:02
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
数值型数据转换为字符型数据的函数:
TRANSFORM()
STR()
PADL()

坚守VFP最后的阵地
2017-10-20 19:05
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
transform(thick)=="14.0"

坚守VFP最后的阵地
2017-10-20 19:07
lgp740401
Rank: 1
等 级:新手上路
帖 子:52
专家分:5
注 册:2008-5-18
收藏
得分:0 
以下是引用sdta在2017-10-20 19:02:38的发言:

 
至少12个以上 是什么意思
字段,意思好多字段
2017-10-20 19:13
lgp740401
Rank: 1
等 级:新手上路
帖 子:52
专家分:5
注 册:2008-5-18
收藏
得分:0 
以下是引用sdta在2017-10-20 19:07:15的发言:

transform(thick)=="14.0"
提示:语法错误!
      lcmd="update A set fcode='zzz14.0',bxcode='zzz14.0',transform(bxthick)='14.0',transform(bxwidth)='1240',transform(bxlongth)='2465',ylly='外购'  
      EXECSCRIPT(lcmd)    &&&&提示:语法错误![attach]91641[/attach]
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2017-10-20 19:39编辑过]

2017-10-20 19:30
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
lcmd="update A set fcode='zzz14.0',bxcode='zzz14.0',transform(bxthick)='14.0',transform(bxwidth)='1240',transform(bxlongth)='2465',ylly='外购'"
后面少了一个双引号

坚守VFP最后的阵地
2017-10-20 20:16
lgp740401
Rank: 1
等 级:新手上路
帖 子:52
专家分:5
注 册:2008-5-18
收藏
得分:0 
回复 9楼 sdta
嗯,打的时候少了,不是这问题,是字符型的全用'zzz14.0',数值的直接如:bxthick=14.0,一定不能加上''
lcmd="update A set fcode='zzz14.0',bxcode='zzz14.0',bxthick=14.0,bxwidth=1240,bxlongth=2465,ylly='外购'"
EXECSCRIPT(lcmd)

ok!!!,谢谢你的参与!!!

[此贴子已经被作者于2017-10-20 20:20编辑过]

2017-10-20 20:18
快速回复:又遇上新问题了---update更新数值型字段
数据加载中...
 
   



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

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