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