COM contains a class of transaction time -2147164157 error reasons and resolution
A class that requires a transaction is the following error each time you create another COM object:
Method '~' of Object '~' Failed
Error number: -2147164157
Commissioning for a long time, I can't understand, Google News Group Search, get the following information
Error Number:
0x8004E003 (-2147164157)
Error Description:
You Made a Method Call on a COM Component
That Has a Transaction That Has Already Aborted OR
In the process of aborting.
THIS Can Be Caused by Two Things That Aren That Time:
1) SetComplete Has Been Called After Setabort Was Already Called in The
Transaction, and Then a Method of the Object in The Transaction IS CALLED
2) The method on the object IS Called WHEN The Transactions Has Been
cleaned
Up Due to a Transaction Timeout.
*** TRY THIS ***
1) AFTER CALLING SETABORT () RAISE An Error (Err.raise) To the Caller SO
The Can Handle
The Abort Correctly 2) Increase The Transaction Timeout for long Queries,
OR Updates.
According to your description, you are pretty suhe, you are pretty sudu, you are pretty Sure Child Calls SetAborts
And Parent Calls Setaborts. However ITS IMPORTANT TO MANUALLY RAISE THE
Error from the child. Err.raise instator. .raise.
Also, IF you are useless w2k, install sp1
The above information seems to be not used by me. Suddenly I think of COM transaction management does not support nested, then will it be exposed to the border between different packages (Package)? Because I put the components in different COM applications in order to install the components, I have a Package call and create an object. When not using a transaction, there is no problem; Once the transaction is called and created, there is an error. I have also encountered this situation, when I thought it was a COM business, I didn't support the call of computer, and I finally understood.
Workaround: Put the components all in one package and commissioned.