Kbase P148763: How to investigate the cause of the ActiveX error 5890
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  11/9/2009 |
|
Status: Verified
GOAL:
How to investigate the cause of the ActiveX error 5890
GOAL:
Error occurred while accessing component property/method: <property or method name>. <COM message> Error code: <Program name> (5890)
GOAL:
What is the 5890 error?
GOAL:
Why does COM error 5890 happen?
FACT(s) (Environment):
Windows
Progress 9.x
OpenEdge 10.x
FIX:
The 5890 error is generally used to communicate errors from an ActiveX/COM component back to the 4GL/ABL. The ABL COM-HANDLE object is used as a wrapper to communicate with controls written in different languages, using COM, and when errors occur in instantiating, assigning a property to, or executing a method on, these controls, they are communicated back to the ABL and a 5890 message is shown to the user with as much error information as the control was able to communicate.
1) When this error is seen you need to first find out where in the ABL program the error happened. You could use -debugalert and view the ABL stack trace or 4GLTrace. This will help to locate where in your code the error is happening.
Note: To see the actual line referenced in the error stack recompile your program with the DEBUG-LIST option. Usage of preprocessors and include files can throw this off significantly.
2) Step 1 should hopefully provide you with the following information:
- What ActiveX control/COM object the error is being returned by
- What method, property or other activity is causing the error
Use this information, if the error isn't telling enough about the problem, to search the web or the ActiveX vendor's website using the error text (including any referenced memory address(es)) to determine possible causes for the error.
3) If step 2 doesn't lead you to the cause start to consider the following:
- Think about what recent changes might have occurred in your application, the underlying Progress/OpenEdge version, or the environment.
- Think more about the nature of the control, specifically what it's for and whether it interacts with any files or other outside resources.
- If it uses ODBC, or some other datasource, make sure that you can connect to the datasource or the referenced DSN via ODBC Administrator.
- If the control accesses some outside resource like a file or something that requires network access, make sure the user has permission for accessing the resource in question
4) Contact the control vendor or PSC Technical Support for more specific things to look at, but make sure you know a little about the control, the method, the property, the potential changes and any dependencies first. You can save yourself a lot of time if you do these things first.