procedureslistx.cpp

来自「visual c++ 很全的ado的sample」· C++ 代码 · 共 94 行

CPP
94
字号
#import "c:\Program Files\Common Files\system\ado\msadox.dll" \
    no_namespace
#import "c:\Program Files\Common Files\system\ado\msado15.dll"

#include "iostream.h"
#include "stdio.h"
#include "conio.h"

//Function declarations
inline void TESTHR(HRESULT x) {if FAILED(x) _com_issue_error(x);};
void ProceduresListX(void);

//////////////////////////////////////////////////////////
//                                                      //
//      Main Function                                   //
//                                                      //
//////////////////////////////////////////////////////////
void main()
{
    if(FAILED(::CoInitialize(NULL)))
        return;

    ProceduresListX();

    ::CoUninitialize();
}

//////////////////////////////////////////////////////////
//                                                      //
//       ProceduresListX Function                        //
//                                                      //
//////////////////////////////////////////////////////////
void ProceduresListX()
{
    HRESULT hr = S_OK;

    // Define ADOX object pointers.
    // Initialize pointers on define.
    // These are in the ADOX::  namespace.
    _CatalogPtr m_pCatalog = NULL;

    // Define ADODB object pointers.
    ADODB::_ConnectionPtr m_pCnn = NULL;
    ADODB::_CommandPtr m_pCommand = NULL;

    long lngLineCnt = 1;

    try
    {
        //Open the Connection
        TESTHR(hr = m_pCnn.CreateInstance(__uuidof(ADODB::Connection)));
        TESTHR(hr = m_pCatalog.CreateInstance(__uuidof(Catalog)));
        TESTHR(hr = m_pCommand.CreateInstance(__uuidof(ADODB::Command)));

     //   m_pCnn->Open("Provider=Microsoft.Jet.OLEDB.4.0;"
     //       "data source=c:\\Program Files\\Microsoft Office"
     //       "\\Office\\Samples\\Northwind.mdb;","","",NULL);
        m_pCnn->Open("Provider=sqloledb;data source=dhale1;user id=sa;"
            "database=pubs;password=;","","",NULL);

        //Open the catalog
        m_pCatalog->PutActiveConnection(_variant_t((IDispatch *)m_pCnn));


        //iterate through the procedures
        for(long i=0;i < m_pCatalog->Procedures->Count;i++)
        {
            printf("%d. %s\n",i,(LPCSTR) m_pCatalog->Procedures->GetItem(i)->Name);
            if(lngLineCnt % 20 == 0)
            {
                printf("%s\n","Press any key to continue...");
                getch();
                lngLineCnt = 1;
            }
            lngLineCnt++;
        }
    }

    catch(_com_error &e)
    {
        // Notify the user of errors if any.
        _bstr_t bstrSource(e.Source());
        _bstr_t bstrDescription(e.Description());

        printf("\n\tSource :  %s \n\tdescription : %s \n ",(LPCSTR)bstrSource,(LPCSTR)bstrDescription);
    }

    catch(...)
    {
        cout << "Error occured in include files...."<< endl;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?