vbscript:测试记录集中是否存在列

时间:2009-02-04 22:24:09

标签: vbscript

Bah,vbscript。

我正在试图弄清楚如何使这个陈述发挥作用:

if (not rsObject("columnNameThatDoesntExist") is nothing) then 
' do some stuff
end if
' else do nothin

其中rsObject是一个RecordSet,而columnNameThatDoesntExist是......你知道吗。我正在寻找类似rsObject.Columns.Contains(string)的东西。但当然找不到它。

编辑:看起来像循环rsObject.Fields是一个选项,这是唯一的方法吗?

2 个答案:

答案 0 :(得分:6)

我确定你有理由,但是如果你不知道从数据库回调了哪些字段,你总是可以使用On Error Resume Next和On Error Goto 0来忽略抛出的错误。对我来说似乎是一种糟糕的方式,但它会起作用

blnItWasntThere = True
On Error Resume Next
If (rsObject("columnNameThatDoesntExist") <> "") Then 
  blnItWasntThere = False
  ...
  ...
  ...
End If
On Error Goto 0

If blnItWasntThere Then
'handle this error'
End If

但话虽如此,我想你会更加担心你要回来的神秘记录。

或制作自己的功能

Function ColumnExists(objRS, Column)
  Dim blnOutput, x
  blnOutput = True
  On Error Resume Next
  x = objRS(Column)
  If err.Number <> 0 Then blnOutput = False
  On Error Goto 0
  ColumnExists = blnOutput
End Function

答案 1 :(得分:0)

要么looooop并检查它是否存在,或者只是尝试抓住它:

Dim oRs:Set oRs = Nothing
On Error Resume Next
Set oRs = rsObject("columnNameThatDoesntExist")
On Error Goto 0
If Not rsObject("columnNameThatDoesntExist" Is Nothing Then 
    ' ...
End If