Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 196
  • Last Modified:

Need an expert's analysis of object type problem

I have a problem with data/object types.  Here's a function that is being called:
'******************************************************
Function getData(object, method, criteriaValue, criteriaValue2, orderBy, pageSize, pageNumber)

     On Error Resume Next    
     
     Dim cmd, rs, retryCount, retryFlag, numPerPage
     retryCount = 1
     retryFlag = 1
     
     Set cmd = Server.CreateObject("ADODB.Command")
     With cmd
     .ActiveConnection = cnn
     .CommandTimeout = 240
     .CommandType = adCmdStoredProc
     .CommandText =  object & "_" & method
     .Parameters.Refresh
     .Parameters("@SessionID")= sessionID
     End With
     
    writeParameters cmd

    Set rs = cmd.Execute()
         If Err.Number <> 0 Then
            logError Request.ServerVariables("URL"), Err.Number, Err.Description
         End If
         retryCount = retryCount + 1
         
          If (rs.State = 0)  Then
               retryFlag = 1
          ElseIf (rs.EOF) Then
               retryFlag = 1
          Else
           retryFlag = 0
          End If
     
     Wend

     If ((rs.State > 0) And Not(rs.EOF)) Then
        rs.MoveFirst
    End If

     If Not(IsNull(pageSize)) AND (rs.State > 0) And Not(rs.EOF) Then
        rs.CacheSize = pageSize
        rs.PageSize = pageSize
        rs.AbsolutePage = pageNumber
     End If

     On Error GoTo 0              
     
     closeCommand cmd ' Close command object
     Set getData = rs    
End Function
********************************************************

Here's the calling Sub:
********************************************************
Sub displayError
Dim rsError
rsError = getData("Error", "Get","","","","","")
%>
<FONT COLOR="RED"><B><%=rsError("ErrorMessage")%></B></FONT>
</FONT><BR><HR>
<%End Sub%>
*********************************************************
the problem is this...the rsERROR object being returned is an ADO recordset, but after the "rsError=getdata(etc.)" call, the rsError variable is not a proper ADO Recordset object (I am purposefully aware of the absence of the SET keyword).  What type of object is it?  I can still retrieve data from it using rsError("FieldName") but not with rsError.Fields("FieldName").  Weird to me.  I thought for sure it would fail without the SET keyword but it doesn't.  Any experts out there know what's going on?  implicit conversion to object type <????>?
0
svfafel
Asked:
svfafel
  • 2
1 Solution
 
preinskoCommented:
To obtain underlying type use TypeName function

MyType = TypeName("VBScript") 'Returns a string
MyType = TypeName(4) 'Returns Integer
and so forth.

To determine if something is an object use IsObject function.

Dim myInt, myObj, bObj
Set myObj = Me
bObj=IsObject(myObj)  'Returns true
bObj=IsObject(myInt)  'Returns false
and so forth.

Hope this helps.  I use them a lot because when you deal with Variants everything is an unknown.

Cheers.
0
 
preinskoCommented:
Sorry I didn't mean to propose this as an answer just a troubleshooting tip.
0
 
svfafelAuthor Commented:
Thanks...you helped me out tons...thanks!!!
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now