 |
|
SQL Server Tips by Burleson |
Using the framework
To use the XP++ framework to build an XP you should use the
following steps:
1. Use one of the Appwizards in Microsoft Visual C++ to generate the
basic code for a Win32 dll. Depending on your needs, you can use the
ATL COM Appwizard, MFC Appwizard DLL or Win32 Dynamic-Link Library
wizards if you are using Microsoft Visual C++ v6.
2. Add the two files ‘xp_pp.h’ and ‘xp_pp.cpp’ to your project.
These two files comprise the XP++ class framework.
3. Optionally add IMPLEMENT_VERSION_XP() to support the __GetXpVersion
function.
4. Modify the stdafx.h header file to include ‘srv.h’. This contains
the definitions for the ODS API.
5. Create your new XP class say ‘CYourExtendedStoredProcedure’ in a
new set of ‘YourStoredProcedure.cpp’ and ‘YourStoredProcedure.h’
files. This class should derive from CExtendedStoredProcedure and
should override the ‘DisplayUsage‘ and ‘Run’ methods of its base
class.
6. Also add DECLARE_XP_PARAMETERS() to the declaration of
CYourExtendedStoredProcedure in ‘YourStoredProcedure.h’.
7. Define the layout of the parameters to your XP, using the
BEGIN_IMPLEMENT_XP_PARAMETERS, END_IMPLEMENT_XP_PARAMETERS and
XP_..._PARAMETER macros in ‘YourStoredProcedure.cpp’.
8. Implement the ‘DisplayUsage’ method to display info on using your
XP.
9. Implement the core logic of your XP in the method ‘CYourExtendedStoredProcedure::Run’.
10. Add IMPLEMENT_XP(theNameOfYourXP, CYourExtendedStoredProcedure)
to the main cpp module of your project. Also #include
YourStoredProcedure.h in this module.
11. Compile, Unit test, Debug and Deploy!.
To add additional XP’s to your dll, simple repeat steps 5 – 11.
Please also note that the framework will work equally as well in a
plain SDK DLL, MFC DLL or ATL DLL. Also included in the framework
example XP are Unicode build configurations if you want to produce
Unicode versions of the XP. The framework as well as all its samples
have also been tested on Visual Studio .NET 2003.
The above book excerpt is from:
Super SQL
Server Systems
Turbocharge Database Performance with C++ External Procedures
ISBN:
0-9761573-2-2
Joseph Gama, P. J. Naughter
http://www.rampant-books.com/book_2005_2_sql_server_external_procedures.htm |