Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Access 2013, Office 2013
Durch das Festlegen der ActiveConnection-Einstellung auf eine gültige, offene Verbindung wird der Katalog geöffnet. Über einen geöffneten Katalog können Sie auf die Schemaobjekte zugreifen, die in dem jeweiligen Katalog enthalten sind.
// BeginActiveConnectionCpp
#import "c:\Program Files\Common Files\system\ado\msado15.dll"
#import "c:\Program Files\Common Files\system\ado\msadox.dll" no_namespace
#include "iostream.h"
#include "stdio.h"
#include "conio.h"
// Function declarations
inline void TESTHR(HRESULT x) {if FAILED(x) _com_issue_error(x);};
void OpenConnectionX(void);
void OpenConnectionWithStringX(void);
//////////////////////////////////////////////////////////
// //
// Main Function //
// //
//////////////////////////////////////////////////////////
void main()
{
if(FAILED(::CoInitialize(NULL)))
return;
OpenConnectionX();
OpenConnectionWithStringX();
::CoUninitialize();
}
//////////////////////////////////////////////////////////
// //
// OpenConnectionX Function //
// //
//////////////////////////////////////////////////////////
void OpenConnectionX(void)
{
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;
// Define string variables.
_bstr_t strcnn("Provider='Microsoft.JET.OLEDB.4.0';"
"Data source = 'c:\\Program Files\\Microsoft Office\\"
"Office\\Samples\\Northwind.mdb';");
try
{
TESTHR(hr = m_pCnn.CreateInstance(__uuidof(ADODB::Connection)));
TESTHR(hr = m_pCatalog.CreateInstance(__uuidof (Catalog)));
m_pCnn->Open(strcnn,"","",NULL);
m_pCatalog->PutActiveConnection(_variant_t((IDispatch *) m_pCnn));
_variant_t vIndex = (short) 0;
cout<<m_pCatalog->Tables->GetItem(vIndex)->Type<<endl;
}
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 OpenConnectionX...."<< endl;
}
if (m_pCnn)
if (m_pCnn->State == 1)
m_pCnn->Close();
}
//////////////////////////////////////////////////////////
// //
// OpenConnectionWithStringX Function //
// //
//////////////////////////////////////////////////////////
void OpenConnectionWithStringX(void)
{
HRESULT hr = S_OK;
// Define ADOX object pointers.
// Initialize pointers on define.
// These are in the ADOX:: namespace.
_CatalogPtr m_pCatalog = NULL;
// Define string variables.
_bstr_t strcnn("Provider='Microsoft.JET.OLEDB.4.0';"
"Data source = 'c:\\Program Files\\Microsoft Office\\"
"Office\\Samples\\Northwind.mdb';");
try
{
TESTHR(hr = m_pCatalog.CreateInstance(__uuidof (Catalog)));
m_pCatalog->PutActiveConnection(strcnn);
_variant_t vIndex = (short) 0;
cout<<m_pCatalog->Tables->GetItem(vIndex)->Type<<endl;
}
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 OpenConnectionWithStringX...."<< endl;
}
}
// EndActiveConnectionCpp