#include "StdAfx.h" #include "MultiDBInterface.h" CMultiDBInterface::CMultiDBInterface(void) { } CMultiDBInterface::~CMultiDBInterface(void) { RemoveAllCatalog(); } void CMultiDBInterface::RemoveAllCatalog() { CCatalogObj *pCatalog = NULL; for ( MULTCATALOG::iterator it = m_vtMulitCatalog.begin(); it != m_vtMulitCatalog.end();) { pCatalog = *it; it = m_vtMulitCatalog.erase(it); delete pCatalog; pCatalog = NULL; } } BOOL CMultiDBInterface::IsCatalogExists(IN LPCTSTR lpConnectString) { CCatalogObj *pCatalog = NULL; for ( MULTCATALOG::iterator it = m_vtMulitCatalog.begin(); it != m_vtMulitCatalog.end();it++) { pCatalog = *it; if ( _tcscmp(pCatalog->GetConnectString(),lpConnectString) == 0 ) { return TRUE; //break; } } return FALSE; } BOOL CMultiDBInterface::AddCatalog(IN CONST DWORD &dwCatalogPort, IN LPCTSTR lpCatalogSource, IN LPCTSTR lpCatalogAccount, IN LPCTSTR lpCatalogPsw, IN LPCTSTR lpCatalogName) { TCHAR szConnectString[MAX_PATH] = _T(""); if (dwCatalogPort) { _stprintf_s(szConnectString, _T("driver={SQL Server};Server=%s,%d;database=%s;uid=%s;pwd=%s"), lpCatalogSource, dwCatalogPort, lpCatalogName, lpCatalogAccount, lpCatalogPsw); } else { _stprintf_s(szConnectString, _T("driver={SQL Server};Server=%s;database=%s;uid=%s;pwd=%s"), lpCatalogSource, lpCatalogName, lpCatalogAccount, lpCatalogPsw); } if ( IsCatalogExists(szConnectString) ) { return FALSE; } CCatalogObj *pCatalog = new CCatalogObj; if ( pCatalog == NULL ) { return FALSE; } pCatalog->SetConn(szConnectString); if( !pCatalog->OpenCatalog() ) { delete pCatalog; pCatalog = NULL; return FALSE; } return TRUE; }