Category: PowerBuilder
Hits: 696

User Rating: 3 / 5

Star ActiveStar ActiveStar ActiveStar InactiveStar Inactive

Normally when you use OLEObject to connect to an ActiveX control and encounter an error, you will get the generic run time error ‘R0035 – Application terminated. Error calling external object function xxx’.


I have run across a very simple way to capture the actual error code and message generated by the ActiveX control.


First, create a new Standard Class object and select oleobject for the type.


Next add the following instance variables:


ULong ErrorCode

String ErrorText


Then add this code to the externalexception event:


ErrorCode = ResultCode

ErrorText = Description


Finally save the object as n_oleobject.


In your script that calls the ActiveX control functions you will do the following:


n_OLEObject oleTheObj

Integer li_rc


oleTheObj = Create n_OLEObject

li_rc = oleTheObj.ConnectToNewObject(“TheObject.Name”)

If li_rc = 0 Then



   catch ( RuntimeError rte )

      PopulateError(oleTheObj.ErrorCode, oleTheObj.ErrorText)

      MessageBox(“OLE Runtime Error #” + &

            String(Error.Number), Error.Text, StopSign!)



   end try



   MessageBox(“OLE Connect Error #” + String(li_rc), &

         “Connect To Object Failed!”, StopSign!)

End If


You’ll notice that in the catch section I used PopulateError to get the instance variables with the error information. I did this so I would also have the objectname/scriptname/linenumber for error logging if this were a real application.

We use cookies which are necessary for the proper functioning of our websites. We also use cookies to analyze our traffic, improve your experience and provide social media features. If you continue to use this site, you consent to our use of cookies.