pfu*_*unk 9 vbscript decimal asp-classic
我支持/增强了用Classic ASP/VBScript编写的Web应用程序.自从我使用日常生产能力以来已经过去了大约10年.我刚刚遇到了一个我认为是"陷阱"的问题,并且想知道其他人是否有类似我应该学会了解的事情.
我的问题:
我必须将SQL表中的列从float转换为decimal.事实证明,十进制不是vbscript中真正支持(或支持得很好)的类型.所以下面的代码:
Dim var1, var2
var1 = rs("DecimalField1").Value
var2 = rs("DecimalField2").Value
If (var1 <> var2) Then
'Do Something'
End If
Run Code Online (Sandbox Code Playgroud)
会在线路上出现类型不匹配错误:
If (var1 <> var2) Then
Run Code Online (Sandbox Code Playgroud)
经过多次搜索,我发现:
var1 = CDBL(rs("DecimalField1").Value)
var2 = CDBL(rs("DecimalField2").Value)
Run Code Online (Sandbox Code Playgroud)
解决了这个问题.但这似乎并不是一个显而易见的事情,我花了一段时间才弄清楚为什么我在那条线上遇到类型不匹配.
所以我对每个人的问题是,你遇到过这样的其他小问题吗?ASP/vbscript中有哪些东西你会被认为是"陷阱",我应该注意什么?
确保您使用Set对象引用:
Dim rs : Set rs = CreateObject("ADODB.Recordset");
Run Code Online (Sandbox Code Playgroud)
如果不这样做,您将获得无效的变量引用或默认属性
Dim field : Set field = rs(0)
Dim fieldValue : fieldValue = rs(0) 'Same as field.Value
Run Code Online (Sandbox Code Playgroud)