cancel
Showing results for 
Search instead for 
Did you mean: 

Run-time error '-2147417856 (80010100)' Automation error

Former Member
0 Kudos

Hello @all,

with an older add-on, which is still programmed in Visual Basic 6 on some SBO-clients this error occurs and sometimes not.

This happens mostly when a matrix is filled by a big recordset (500-1000 records) into the matrix-userdatasources.

When it runs without the problem (on an other client) filling the matrix with the same data takes 3 to 8 minutes.

Also, when debugging the project, the error occurs in different program-lines.

In the last time the frequence of this error highly increase

Has anybody heard about this problem and where it's located? Any comment is welcome.

Thanks in advance,

Roland

Message was edited by:

Roland Toschek

Accepted Solutions (0)

Answers (2)

Answers (2)

kurt_huwiler
Participant
0 Kudos

Hi Roland

We are exactly facing the same Problem. We have a VB6 application. We are filling a matrix, using user datasources, with more then 1000 lines and we are exactly running in the very, very same problems like you did (error -2147417856).

We are facing the problem with SBO PL22.

Did you find a work around for this problem ? Any suggestions you can give us.

Thank you

Kurt Huwiler

caviles
Explorer
0 Kudos

Does anyone know the solution for this problem ????

I'm having the same problem when working with big files (over 2000 lines in the matrix) otherwise work fine.

Let me know

THANKS

Former Member
0 Kudos

Hello Kurt & Cesar,

unfortunatly I didn't find a stable solution yet...

The error occurs lastly after waiting for heavy DB-querys.

After waiting for the query result (end of doQuery) the connection to SBO-User Interface seems to be lost (SBO-UI): Every UI-Object shows the -2147417856 error in debugging-mode.

Since there's no way to to do anything on the UI while waiting for doQuery (like setting statusbar or anything else) I'm testing the following quick-and-dirty-workaround at the moment:

I've written a separate EXE (as a windows-form which can be closed by user) which connects to the UI-API and starts the progressbar in an endless loop (up and down when the end is reached - only statusbar-message does not work for this).

This EXE is started by the Addon before invoking the doQuery-method (and asure that the progressbar is REALLY VISIBLE BEFORE doQuery).

Now while the doQuery the normally frozen SBO-UI shows a moving progressbar.

When doQuery has ended the EXE will be closed by AddOn. I hope that this keeps the SBO-UI alive and prevents it from loosing the connection to the UI-API.

But I'm still in gathering work experience with that trick.....

For a .NET Project the query should be done in an extra thread I think.

Former Member
0 Kudos

by any chance you have formatted searches on that form?

Are you using the lost_focus or got_focus event?

Regards,

WB

Former Member
0 Kudos

Hi William,

there are no formatted searches.

With the lost_focus or got_focus event I'm not shure at the moment...

...but I have activated the eventFilters for a test some time ago (there was no time so far to do this for all forms in that large project )-: That also has made no advancement.

Sometimes the error also occurs when stopping the project in debugging mode and then waiting for 20 or more minutes - the next access to UI-API throws (again: sometimes...) the error.

Former Member
0 Kudos

Can you post the code (if is not too big)?

What patch level are you using?

Regards,

WB

Former Member
0 Kudos

Sorry:

I can't post the code because

1. it's too big and

2. the error happens in different modules (mostly after "heavy doQuery-commands").

A really heavy test query (how do I create this with tables in SboDEMO-US for an example?) in an AddOn connected by single sign on (UI AND DI connected) may help...

The error is a problem from SP00 PL11 to SP01 PL27....

Former Member
0 Kudos

Are you clearing the recordsets after you are done with them.

You should use the following code (where theobject is the business object or recordset object your using) to cleanup every recordset object after each used or if your doing another doquery:

System.Runtime.InteropServices.Marshal.ReleaseComObject(theobject)

theobject = nothing

gc.collect()

Regards,

WB

Gianluigi
Product and Topic Expert
Product and Topic Expert
0 Kudos

Read the guidelines for this forum.

Former Member
0 Kudos

Is it ok now by changing the title or did I missunderstood you?

Message was edited by:

Roland Toschek

Message was edited by:

Roland Toschek