亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rcenuminstance.cpp

?? MSSQL備份及恢復的VC++源代碼。提供給大家學習。
?? CPP
字號:
//////////////////////////////////////////////////////////////////////////////
//																			//
//			Created by Ozzy Osbourne(maojun) . HangZhou . 20030212			//
//				 warning: need add sqldmoid.h & sqldmo.h					//
//																			//
//////////////////////////////////////////////////////////////////////////////

// CRcEnumInstance is enum all MSSQLServer instances in the LAN 
// 
// Expect bugs.
// 
// Please use and enjoy. Please let me know of any bugs/mods/improvements 
// that you have found/implemented and I will fix/incorporate them into this file.
// Please send report to OzzyJMalmsteen@yahoo.com.cn or Ozzman@163.net

#include "stdafx.h"
#include "RcMSSQL.h"
#include "RcEnumInstance.h"

#include <lmerr.h>

// Stardard headers
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <initguid.h>

// DMO headers
#include "..\base\include\sqldmoid.h"
#include "..\base\include\sqldmo.h"

// Custom headers
#include "RcErrorMessage.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

// Must add the header file "#include <afxtempl.h>".

CArray<CString, CString&> g_InstanceArray;				// save sql server instances in LAN.
CArray<CString, CString&> g_InstalledInstanceArray;		// save installed instance in local

long g_lAmount;											// save instances amount.
long g_lInstalledAmount;								// save installed instance amount.

CRcErrorMessage * g_EnumError;

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CRcEnumInstance::CRcEnumInstance ()
{
	g_InstanceArray.RemoveAll ();
	g_InstalledInstanceArray.RemoveAll ();

	g_lAmount=0;
	g_lInstalledAmount=0;

	g_EnumError = NULL;
	if (g_EnumError == NULL)
	{
		g_EnumError = new CRcErrorMessage;
	}
}

CRcEnumInstance::~CRcEnumInstance ()
{
	if (g_EnumError != NULL)
	{
		delete g_EnumError;
		g_EnumError = NULL;
	}
}

BOOL CRcEnumInstance::SetInstanceList ()
{
	g_InstanceArray.RemoveAll ();
	g_lAmount=0;

	// Assume failure.
	BOOL bExitStatus = FALSE;

	HRESULT hr;

	LPSQLDMOAPPLICATION pDMOApp = NULL;
	LPSQLDMONAMELIST pNameList = NULL;

	try
	{
		// Initialize COM.
		if FAILED(hr = CoInitialize (NULL))
		{
			m_strErrorMessage.Format ("%s", "CoInitialize 失?。?quot;);
			return (bExitStatus);
		}

		// Create SQLDMOApplication.
		if FAILED(hr = CoCreateInstance (CLSID_SQLDMOApplication, NULL, CLSCTX_INPROC_SERVER, 
		IID_ISQLDMOApplication, (LPVOID*)&pDMOApp))
		{
			m_strErrorMessage.Format ("%s", "創建 CLSID_SQLDMOApplication 實例時失??!");
			return (bExitStatus);
		}

		// Get instance list.
		if SUCCEEDED(pDMOApp->ListAvailableSQLServers (&pNameList))
		{
			// Retrieve the count.
			long lCount=0; pNameList->GetCount (&lCount);

			BSTR strTemplate = NULL;	// BSTR: A 32-bit character pointer.
			CString strInstanceName;
			for(long i = 0; i < lCount; i++)
			{
				// Get the server name
				pNameList->GetItemByOrd (i, &strTemplate);
				strInstanceName = strTemplate;
				g_InstanceArray.Add (strInstanceName);
				g_lAmount++;
			}
			SysFreeString(strTemplate);

			bExitStatus = TRUE;
		}

		if (pDMOApp)
		{
			pNameList = NULL;
			pDMOApp->Release ();
			pDMOApp = NULL;
		}
		CoUninitialize ();
	}
	catch(...)
	{
		// _tprintf(TEXT("error dmolistservers unhandled exception (%d)\n"), GetLastError() );
		g_EnumError->FormatErrorMessage("IID_ISQLDMOApplication 異常中斷", GetLastError ());
		m_strErrorMessage = g_EnumError->GetErrorMessage();
	}

	return bExitStatus;
}

CArray<CString,CString&> * CRcEnumInstance::GetInstanceList ()
{
	return &g_InstanceArray;
}

long CRcEnumInstance::GetInstanceAmount ()
{
	return g_lAmount;
}

BOOL CRcEnumInstance::SetInstalledInstanceList()
{
	g_InstalledInstanceArray.RemoveAll ();
	g_lInstalledAmount=0;

	// Assume failure.
	BOOL bExitStatus = FALSE;

	HRESULT hr;

	LPSQLDMOSERVER2 pDMOServer2 = NULL;
	LPSQLDMONAMELIST pNameList = NULL;

	try
	{
		// Initialize COM.
		if FAILED(hr = CoInitialize (NULL))
		{
			m_strErrorMessage.Format ("%s", "CoInitialize 失??!");
			return (bExitStatus);
		}

		// Create SQLDMOServer2.
		if FAILED(hr = CoCreateInstance (CLSID_SQLDMOServer2, NULL, CLSCTX_INPROC_SERVER, 
		IID_ISQLDMOServer2, (LPVOID*)&pDMOServer2))
		{
			m_strErrorMessage.Format ("%s", "創建 CLSID_SQLDMOServer2 實例時失??!");
			return (bExitStatus);
		}

		// Get the list of installed instance.
		if SUCCEEDED(pDMOServer2->ListInstalledInstances (&pNameList,NULL))
		{
			// Retrieve the count.
			long lCount=0; pNameList->GetCount (&lCount);

			BSTR strTemplate = NULL;	// BSTR: A 32-bit character pointer.
			CString strInstanceName;
			for (long i = 0; i < lCount; i++)
			{
				// Get the server name
				pNameList->GetItemByOrd (i, &strTemplate);
				strInstanceName = strTemplate;
				g_InstalledInstanceArray.Add (strInstanceName);
				g_lInstalledAmount++;
			}
			SysFreeString(strTemplate);

			bExitStatus = TRUE;
		}

		if (pDMOServer2)
		{
			pNameList = NULL;
			pDMOServer2->Release ();
			pDMOServer2 = NULL;
		}
		CoUninitialize ();
	}
	catch(...)
	{
		// _tprintf(TEXT("error dmolistservers unhandled exception (%d)\n"), GetLastError() );
		g_EnumError->FormatErrorMessage("IID_ISQLDMOServer2 異常中斷", GetLastError ());
		m_strErrorMessage = g_EnumError->GetErrorMessage();
	}

	return bExitStatus;
}

CArray<CString,CString&> * CRcEnumInstance::GetInstalledInstanceList ()
{
	return &g_InstalledInstanceArray;
}

long CRcEnumInstance::GetInstalledInstanceAmount ()
{
	return g_lInstalledAmount;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩成人一区二区三区在线观看| 欧美色男人天堂| 色噜噜狠狠成人中文综合| 欧美一区二区三区性视频| 亚洲欧洲另类国产综合| 久久成人18免费观看| 欧美探花视频资源| 免费人成精品欧美精品| 91福利视频在线| 国产精品午夜电影| 国产成人无遮挡在线视频| 在线综合亚洲欧美在线视频| 亚洲精品成人悠悠色影视| 成人精品视频一区二区三区| 精品国产一区二区三区忘忧草| 亚洲午夜免费电影| 99久久夜色精品国产网站| 国产网站一区二区三区| 精品无码三级在线观看视频| 91精品国产综合久久福利| 亚洲精品写真福利| 91麻豆.com| 综合自拍亚洲综合图不卡区| 国产99一区视频免费| 精品日本一线二线三线不卡 | 欧洲一区二区三区在线| 国产精品免费av| 成人精品一区二区三区四区| 国产日产欧产精品推荐色| 国产成人精品一区二区三区四区 | 成人午夜精品一区二区三区| 日韩美女视频在线| 久久电影网电视剧免费观看| 91精品国产色综合久久不卡蜜臀| 视频一区欧美日韩| 7777精品久久久大香线蕉| 欧美a级理论片| 精品国产髙清在线看国产毛片| 久久精品国产在热久久| 精品av久久707| 国产二区国产一区在线观看| 欧美国产精品中文字幕| 不卡av电影在线播放| 亚洲天堂免费看| 欧美性猛片aaaaaaa做受| 亚洲成av人片一区二区| 4438亚洲最大| 精品一区二区在线播放| 欧美激情中文不卡| 91网址在线看| 丝袜美腿亚洲一区| 久久综合国产精品| av午夜精品一区二区三区| 亚洲日本在线a| 欧美精品vⅰdeose4hd| 九一久久久久久| 欧美国产视频在线| 久久老女人爱爱| www.欧美日韩| 无吗不卡中文字幕| 国产午夜精品福利| 色乱码一区二区三区88| 蜜臀久久久久久久| 国产精品无码永久免费888| 色成人在线视频| 蜜桃视频在线观看一区| 国产精品久久免费看| 欧美日本韩国一区| 国产精品2024| 五月婷婷激情综合| 亚洲国产精品精华液2区45| 欧美日韩亚洲综合在线 | 亚洲男人的天堂在线观看| 欧美另类一区二区三区| 国产成人免费在线| 青青国产91久久久久久| 亚洲欧洲精品成人久久奇米网| 制服丝袜在线91| 成人国产亚洲欧美成人综合网| 日韩va欧美va亚洲va久久| 国产精品久久夜| 欧美电视剧免费全集观看| 色婷婷精品大在线视频| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲色图20p| 国产日韩精品一区二区三区| 欧美一卡2卡三卡4卡5免费| 色偷偷成人一区二区三区91| 国产一区二区三区| 日本美女一区二区三区视频| 亚洲最新在线观看| 国产精品久久久久久久午夜片| 日韩免费视频线观看| 欧美日韩国产一级片| 色av成人天堂桃色av| 成人免费av在线| 国产精品一二三区在线| 蜜桃精品视频在线| 七七婷婷婷婷精品国产| 五月天网站亚洲| 亚洲卡通欧美制服中文| 中文字幕一区二区三区在线不卡| 国产日韩欧美电影| 久久嫩草精品久久久久| 日韩免费观看高清完整版| 91精品国产综合久久久久久| 欧美午夜一区二区三区免费大片| 91小视频免费看| 99久久精品国产一区二区三区 | 精品av综合导航| 欧美电影免费观看高清完整版 | 日韩av一区二区在线影视| 亚洲一二三四区| 99视频热这里只有精品免费| 国产91精品在线观看| 国产精品亚洲成人| 懂色av中文字幕一区二区三区 | 久久国产三级精品| 美女视频第一区二区三区免费观看网站| 亚洲一区二区三区在线播放| 亚洲一二三级电影| 天堂va蜜桃一区二区三区漫画版| 天堂影院一区二区| 毛片一区二区三区| 国产一区二区精品久久| 夫妻av一区二区| 91一区二区三区在线播放| 欧美性xxxxx极品少妇| 欧美精品丝袜久久久中文字幕| 91精品免费在线| 国产亚洲综合色| 中文字幕日韩av资源站| 亚洲成在线观看| 美腿丝袜亚洲色图| 国产成人在线视频播放| 色综合久久99| 91精品中文字幕一区二区三区| 精品国产乱码久久久久久夜甘婷婷| 久久综合五月天婷婷伊人| 136国产福利精品导航| 亚洲国产精品久久人人爱 | 国产激情一区二区三区四区| 成人免费毛片app| 欧美日韩一区二区三区视频| 日韩免费福利电影在线观看| 国产精品高潮呻吟| 丝袜亚洲另类欧美| 国产成人精品亚洲777人妖| 欧洲av在线精品| 国产亚洲成年网址在线观看| 亚洲美女少妇撒尿| 九九视频精品免费| 91在线观看视频| 欧美大片一区二区| 最新国产成人在线观看| 欧美aaaaaa午夜精品| 91网站最新地址| 欧美成人一区二区三区片免费 | 日韩在线观看一区二区| 成人激情免费网站| 日韩欧美一区二区三区在线| 国产精品国产三级国产普通话蜜臀 | 欧美一区二区三区视频在线 | 久久伊人中文字幕| 亚洲一区二区视频在线观看| 国产精品一区三区| 欧美日本高清视频在线观看| 中文字幕一区二区三区蜜月| 精品亚洲国内自在自线福利| 欧美日韩成人综合| 亚洲视频在线观看三级| 国产精品18久久久久久久久久久久| 国产精品私房写真福利视频| 日韩精品成人一区二区三区| 色婷婷香蕉在线一区二区| 欧美激情一区二区三区全黄| 久久国产精品99精品国产| 欧美日韩1区2区| 亚洲欧美激情一区二区| 成人在线综合网站| 久久久777精品电影网影网 | 成人亚洲一区二区一| 欧美va亚洲va在线观看蝴蝶网| 午夜电影一区二区| 欧美日韩免费视频| 玉米视频成人免费看| 99久久免费精品高清特色大片| 国产蜜臀av在线一区二区三区 | 日韩极品在线观看| 欧美视频在线一区二区三区| 亚洲美女在线国产| 一本一道波多野结衣一区二区| 国产精品国产自产拍高清av王其| 国产精品一区二区三区网站| 久久综合久久综合久久综合| 国产尤物一区二区在线 | 这里只有精品视频在线观看| 亚洲高清免费一级二级三级| 欧美日韩中字一区| 日韩制服丝袜先锋影音|