WinCC数据写入Oracle以及类型转换

WinCC有内部变量v1,32位浮点。从Oracle中可以读到number类型的数据。现在想把一些数据写入Oracle,用的SQL字符串是:
 strSQL = "insert into student(score,name) values(" + v1 + ",’A’);"
 结果写不进去。
 但是用
 strSQL = "insert into student(score,name) values(90.5,’A’);"
 可以正常写入数据。
 到底怎么办啊?如何动态的把v1的内容写进去啊?请大家帮忙啊!非常着急!谢谢了!
 还有一个问题,我从oracle读到的一些数据是varchar2类型的(字符串),比如"1.1",但是在winCC(或者PLC中)中我要处理这些数据进行数学计算,我怎么才能把"1.1"转换成浮点类型的1.1?请大家帮忙!我要着急死了。。。多谢大家了!

问题补充:
问题解决了一半!!!哈哈,用VBS中的cstr和cdbl方法可以进行字符——〉double的转换,问题基本解决了,同时知道那个insert语句肯定有问题,因为v1是double的时候是不能直接“+”的,我都懵了。但是还是不知道如果Orcale中数据如果是number类型的时候如何在WinCC中直接写入。

最佳答案

既然是动态,当然要读取变量的值才行
 Dim V1
 V1= HMIRuntime.Tags("V1").Read
 strSQL = "insert into student(score,name) values(" & V1 & ",’A’);"

 VBS的CSng/CDbl可以用于将字符串转换为浮点数,语法如下:
 CSng(expression) 
 CDbl(expression)

提问者对于答案的评价:
超感谢 dcount107啊,你好厉害,前几天你给我回答一个问题我给错分了,就是windxx那个wincc方法的问题,一直内疚呢哈哈哈,高人,多谢了!!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc273012.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐