INF: How Sp_OA Procedures Extension to SQL Server Is Implemented

ID: Q180780


The information in this article applies to:


SUMMARY

This article describes how the sp_OA procedures or Microsoft Visual Basic for Applications extension to SQL Server is implemented.


MORE INFORMATION

The sp_OA procedures (OA stands for OLE Automation) like sp_OACreate, sp_OAMethod, and so on, allow a connection, through Transact-SQL commands, to create and use Component Object Model (COM) based objects. The procedures are built into SQL Server as an extended stored procedure (XPROC), contained in Sqlole32.dll. This is another powerful example of how SQL Server behavior can be extended with an XPROC implementation. For more information, see the following article in the Microsoft Knowledge Base:

Q152801 : Examples of Sp_OA Procedure Use and SQLOLE.Transfer Object

When the first attempt to create any COM object takes place, the sp_OA internal functions identify that it is the first time. A new thread is created by the XPROC that performs the CoInitialize call and handles a standard windows message loop. This becomes the apartment thread for sp_OA operations.



As always, make sure your COM activities are minimized when you have an open transaction. The COM operations could lead to extended transaction times and reduced concurrency.

NOTE: If you have written an in-process server or your own Proxy/Stub for an out-of-process server, remember that it runs in the process space of SQL Server.

Additional query words: VBA tsql


Keywords          : SSrvProg 
Version           : WINNT:6.5
Platform          : winnt 
Issue type        : kbinfo 

Last Reviewed: April 16, 1999