Printing Item Property Names, Types, and Values
Topic Last Modified: 2006-06-12
This example demonstrates how to print the name, type, and value for each of an item's properties. In this routine, a bound Microsoft® ActiveX® Data Objects (ADO) Record object is passed, the Fields collection for the Record is enumerated, and the type for each Field is echoed to the console. Where appropriate, the value for the property is also printed. Properties that are binary or arrays of bytes are not printed.
When binding to an item in this way, the list of properties present within the Fields collection is determined using the following information:
- The value of the item's DAV:contentclass and the parent folder's schema scope. If the item's content class is not defined within the parent folder's schema scope, only the properties actually set for the item appear in the Fields collection. If the content class is defined within the parent folder's schema scope, all properties defined by this class appear within the Fields collection.
Note All properties defined by the item's content class appear in the Fields collection, even if the properties have not been set (are empty). - The properties that are set on the item but are not defined by the item's content class. You can always get all properties set for an item, whether or not these properties are part of the item's content class definition.
Example
VBScript
Example
' Note: It is recommended that all input parameters be validated when they are
' first obtained from the user or user interface.
Sub printPropsAndType( Rec )
If Not (VarType(Rec) = vbObject And TypeName(Rec) = "Record") Then
Err.Raise &H80070057 ' E_INVALIDARG
End If
Dim Flds
Set Flds = Rec.Fields
Dim vt
For Each Fld in Flds
vt = VarType(Fld.Value)
WScript.Echo Fld.Name
If vt = 14 Then
WScript.Echo " (Unsupported VARIANT type for VBScript)"
Else
WScript.Echo " " & TypeName(Fld.Value)
End If
If IsArray(Fld.Value) Then
WScript.Echo VarType(Fld.Value)
If VarType(Fld.Value) = 14 Then
WScript.Echo " " & "<array of unprintable>"
ElseIf Not IsPrintable(TypeName(Fld.Value)) Then
WScript.Echo " " & "<array of unprintable>"
Else
temp = Fld.Value
For i = LBound(temp) to UBound(temp)
WScript.Echo " " & temp(i)
End If
Else
If VarType(Fld.Value) = 14 Then
Wscript.Echo " " & "<value unprintable>"
ElseIf Not IsPrintable(TypeName(Fld.Value)) Then
Wscript.Echo " " & "<value unprintable>"
Else
Wscript.Echo " " & Fld.Value
End If
End If
wscript.echo
End Sub
Function IsPrintable(sTypeName)
dim result
Select Case sTypeName
Case "Object"
result = False
Case "Object()"
result = False
Case "Byte"
result = False
Case "Byte()"
result = False
Case "Null"
result = False
Case "Error"
result = False
Case "Error()"
result = False
Case Else
result = True
End Select
IsPrintable = result
End Function