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

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

?? dbserverfiletree.cpp

?? 讀取SQL服務器的目錄及文件列表
?? CPP
字號:
// DbServerFileTree.cpp : implementation file
//

#include "stdafx.h"
#include "DbFile.h"
#include "DbServerFileTree.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDbServerFileTree

CDbServerFileTree::CDbServerFileTree()
{	
	m_img.Create(16, 16, ILC_COLOR8, 4, 2);
	CBitmap bmp;
	bmp.LoadBitmap(IDB_DIRECTORY);
	m_img.Add(&bmp, RGB(0, 0, 0));
	bmp.DeleteObject();
}

CDbServerFileTree::~CDbServerFileTree()
{	// m_img.Destory();
	// m_img.DeleteImageList();
	// m_img.Detach();
}


BEGIN_MESSAGE_MAP(CDbServerFileTree, CTreeCtrl)
	//{{AFX_MSG_MAP(CDbServerFileTree)
	ON_NOTIFY_REFLECT(TVN_ITEMEXPANDED, OnItemexpanded)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDbServerFileTree message handlers

BOOL CDbServerFileTree::ConnectDB(CString serverip, CString database, CString username, CString userpass)
{
	HRESULT hr;
	try
	{
		hr = pConnection.CreateInstance("ADODB.Connection");
		if (SUCCEEDED(hr))
		{
			CString sql; 
			sql.Format("driver={SQL Server};Server=%s; DATABASE=%s; UID=%s; PWD=%s",serverip,database,username,userpass);
			hr = pConnection->Open((LPCTSTR)sql, "", "", adModeUnknown);
		}
	}
	catch (_com_error e)
	{
		AfxMessageBox(e.Description());
		return false;
	}
	return true;
}

BOOL CDbServerFileTree::BuildTree()
{
	CString createsql, sql;
	HTREEITEM hrootitem;
	this->SetImageList(&m_img, TVSIL_NORMAL);
	try
	{
		createsql.Format("create  table #drivertree(a varchar(1000), b int)");
		pConnection->Execute((LPCTSTR)createsql, &RecordsAffected, adCmdText);
		createsql.Format("insert into #drivertree exec master..xp_fixeddrives");
		pConnection->Execute((LPCTSTR)createsql, &RecordsAffected, adCmdText);
		m_pRecordset.CreateInstance("ADODB.Recordset");
		sql.Format("select * from #drivertree");
		m_pRecordset->Open((LPCTSTR)sql, _variant_t((IDispatch *)pConnection, true), adOpenDynamic, adLockPessimistic, adCmdText);
		this->SetRedraw(FALSE);
		while (!m_pRecordset->adoEOF)//不為空
		{
			CString driver = (char *)(_bstr_t)m_pRecordset->GetCollect("a");
			CString driverspace = (char *)(_bstr_t)m_pRecordset->GetCollect("b");
			driver = driver + ":("+driverspace + ")剩余空間";
			hrootitem = this->InsertItem(driver, 3, 3, NULL);
			this->InsertItem("ll", 1, 1, hrootitem);//隨便添一個就可以
			
			m_pRecordset->MoveNext();
		} 
		this->SetRedraw(TRUE);
	}
	catch (_com_error e)
	{
		AfxMessageBox(e.Description());
		return 0;
	}
	return 1;
}

void CDbServerFileTree::DisConnectDb()
{
	pConnection->Close();
	pConnection.Release();
}





void CDbServerFileTree::OnItemexpanded(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView =(NM_TREEVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	TV_ITEM itm = pNMTreeView->itemNew;
	
	
	if (itm.state&TVIS_EXPANDED)
	{
		HTREEITEM parent = GetParentItem(itm.hItem);
		
		ExpandBranch(itm.hItem);//展開樹結點
		if (parent != NULL)
			SetItemImage(itm.hItem, 0, 0);
	}
	else
	{//關閉樹結點
		HTREEITEM parent = GetParentItem(itm.hItem);
		if (parent != NULL)
			SetItemImage(itm.hItem, 1, 1);
	}
	
	
	*pResult = 0;
}

void CDbServerFileTree::ExpandBranch(HTREEITEM parent)
{
	CString fullpath;
	fullpath = GetPathFromHere(fullpath, parent);//得到當前路徑
	DeleteAllChild(parent);
	InsertUnderItem(parent, fullpath);
}

void CDbServerFileTree::DeleteAllChild(HTREEITEM itm)
{
	HTREEITEM child;
	child = GetChildItem(itm);
	if (GetChildItem(itm))
	{	
		DeleteItem(child);
		
	}
	
}

CString CDbServerFileTree::GetPathFromHere(CString s, HTREEITEM itm)
{
	CString str;
	HTREEITEM parent = GetParentItem(itm);
	HTREEITEM itmChild = GetChildItem(itm);
	if (parent == NULL)
	{
		str = GetItemText(itm);
		str = str.Left(2);
		str += "\\";
		s = str + s;
	}
	else
	{
		if (GetItemText(itm) != CString(""))
			s = GetItemText(itm) + '\\'+s;
		s = GetPathFromHere(s, parent);
	}
	if (!itmChild && s.GetLength()>0)//沒有子文件夾了
		s = s.Left(s.GetLength() - 1);
	return s;
}

BOOL CDbServerFileTree::InsertUnderItem(HTREEITEM itm, CString path)
{
	CString createsql, sql;
	HTREEITEM parent;
	_variant_t RecordsAffected;
	_RecordsetPtr m_pRecordset;
	this->SetRedraw(FALSE);
	try
	{
		createsql.Format("create  table #serverfiletree(a varchar(1000), b int,c int)");// a 文件或目錄名稱,b是文件或目錄標志
		pConnection->Execute((LPCTSTR)createsql, &RecordsAffected, adCmdText);
		createsql.Format("insert into #serverfiletree exec master..xp_dirtree @path='%s',@depth=1,@file=1", path);
		pConnection->Execute((LPCTSTR)createsql, &RecordsAffected, adCmdText);
		m_pRecordset.CreateInstance("ADODB.Recordset");
		sql.Format("select * from #serverfiletree");
		m_pRecordset->Open((LPCTSTR)sql, _variant_t((IDispatch *)pConnection, true), adOpenDynamic, adLockPessimistic, adCmdText);
		
		while (!m_pRecordset->adoEOF)//找到相同id值,更新
		{
			CString fileflag = (char *)(_bstr_t)m_pRecordset->GetCollect("c");
			if (fileflag == "0")
			{
				CString filevul = (char *)(_bstr_t)m_pRecordset->GetCollect("a");
				parent = this->InsertItem(filevul, 1, 1, itm);
				// if(TreeHaveChildren(GetPathFromHere("",parent)))
				//{
				this->InsertItem("", 0, 0, parent);
				//}//如果加上這兩句可以判斷是否有子項,但速度會變慢
				m_pRecordset->MoveNext();
			}
			if (fileflag == "1")
			{
				CString filevul = (char *)(_bstr_t)m_pRecordset->GetCollect("a");
				this->InsertItem(filevul, 2, 2, itm);
				m_pRecordset->MoveNext();
			}
		}
		createsql.Format("drop  table #serverfiletree");// a 文件或目錄名稱,b是文件或目錄標志
		pConnection->Execute((LPCTSTR)createsql, &RecordsAffected, adCmdText);
	}
	catch (_com_error e)
	{
		AfxMessageBox(e.Description());
		return 0;
	}
	this->SetRedraw(TRUE);
	m_pRecordset->Close();
	return 1;
}

BOOL CDbServerFileTree::TreeHaveChildren(CString path)
{
	_variant_t RecordsAffected;
	_RecordsetPtr m_pRecordset;
	CString createsql, sql;
	
	BOOL flag = 0;
	try
	{
		createsql.Format("create  table #treefileflag(a varchar(1000), b int)");// a 文件或目錄名稱,b是文件或目錄標志
		pConnection->Execute((LPCTSTR)createsql, &RecordsAffected, adCmdText);
		createsql.Format("insert into #treefileflag exec master..xp_dirtree @path='%s',@depth=1", path);
		if (pConnection->Execute((LPCTSTR)createsql, &RecordsAffected, adCmdText))
			m_pRecordset.CreateInstance("ADODB.Recordset");
		sql.Format("select * from #treefileflag");
		m_pRecordset->Open((LPCTSTR)sql, _variant_t((IDispatch *)pConnection, true), adOpenDynamic, adLockPessimistic, adCmdText);
		if (!m_pRecordset->adoEOF)//
		{
			flag = 1;
		}
		else
			flag = 0;
		
		
		createsql.Format("drop  table #treefileflag");// a 文件或目錄名稱,b是文件或目錄標志
		pConnection->Execute((LPCTSTR)createsql, &RecordsAffected, adCmdText);
	}
	catch (_com_error e)
	{
		AfxMessageBox(e.Description());
		flag = 0;
	}
	return flag;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合天天做天天爱| 亚洲色大成网站www久久九九| 99re在线视频这里只有精品| 国产一区中文字幕| 裸体在线国模精品偷拍| 精品一区二区在线视频| 久久99国产精品久久| 激情另类小说区图片区视频区| 精品一区二区三区在线观看| 激情综合色丁香一区二区| 精品一区二区在线观看| 国产福利一区在线| 成人av免费在线播放| 色综合欧美在线| 欧美日韩一区二区三区在线| 在线播放欧美女士性生活| 日韩一级片在线观看| 精品国精品国产| 国产精品成人免费精品自在线观看| 中文字幕一区二区三区蜜月| 一区二区久久久久| 日韩av电影一区| 国产福利精品导航| 欧美亚洲精品一区| 精品日韩在线一区| 亚洲三级在线看| 蜜臀久久99精品久久久久久9 | 欧美xxxxx牲另类人与| 国产日产欧美一区二区视频| 亚洲视频一区二区免费在线观看| 一区二区三区四区激情| 久久91精品久久久久久秒播| eeuss国产一区二区三区| 欧美视频完全免费看| 久久综合久色欧美综合狠狠| 亚洲精品美腿丝袜| 激情六月婷婷久久| 欧美视频中文字幕| 久久久精品黄色| 日韩黄色一级片| 成人午夜免费电影| 欧美一级二级三级蜜桃| 亚洲视频在线一区观看| 韩国欧美国产一区| 欧美久久久久久久久久| 亚洲人成网站精品片在线观看| 日本视频一区二区三区| 色婷婷亚洲精品| 日本一区二区视频在线| 久久se精品一区二区| 欧美在线观看视频一区二区| 亚洲国产精品高清| 精品亚洲成av人在线观看| 欧美美女网站色| 亚洲精品高清在线| 97se亚洲国产综合自在线不卡 | 一道本成人在线| 国产三级精品视频| 免费的国产精品| 欧美三级中文字| 一区二区三区四区亚洲| 成人黄色大片在线观看| 国产日韩欧美综合在线| 国产一区 二区| 久久夜色精品国产噜噜av| 美女在线一区二区| 欧美成人三级在线| 蜜桃91丨九色丨蝌蚪91桃色| 欧美一区二区福利在线| 午夜不卡av免费| 欧美日韩在线直播| 婷婷激情综合网| 欧美精品久久99久久在免费线 | 国产精品夜夜爽| 欧美精品一区二区精品网| 麻豆精品国产传媒mv男同| 3d动漫精品啪啪一区二区竹菊| 亚洲一区二区三区免费视频| 欧美自拍偷拍一区| 亚洲成人综合在线| 欧美一级理论片| 国产精品资源在线观看| 中文字幕不卡在线播放| 91色porny在线视频| 亚洲高清视频在线| 欧美一区二区三区思思人| 男女男精品视频| 国产欧美一区二区精品仙草咪| 成人黄色综合网站| 亚洲国产sm捆绑调教视频| 欧美一级高清片在线观看| 久草这里只有精品视频| 国产精品日韩成人| 欧美综合色免费| 久久99国内精品| 亚洲天堂精品视频| 欧美高清视频www夜色资源网| 日本欧美一区二区三区乱码| 久久男人中文字幕资源站| 99国产麻豆精品| 亚洲18女电影在线观看| 国产视频在线观看一区二区三区| 一本久道久久综合中文字幕 | 韩国成人在线视频| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 婷婷夜色潮精品综合在线| 日韩一区二区三区三四区视频在线观看 | 欧美主播一区二区三区| 免费在线观看一区| 亚洲婷婷综合色高清在线| 91精品国产综合久久国产大片| 高清不卡在线观看av| 亚洲一区二区高清| 欧美精品一区二区三区在线播放| av在线不卡电影| 久久国产尿小便嘘嘘| 亚洲乱码国产乱码精品精可以看| 日韩一级视频免费观看在线| 91一区二区三区在线观看| 日韩av电影免费观看高清完整版 | 欧美午夜寂寞影院| 国产成人免费视频网站高清观看视频| 亚洲小说春色综合另类电影| 久久久精品tv| 91麻豆精品国产自产在线| 91丨porny丨中文| 国产成人鲁色资源国产91色综| 亚洲成人777| 一区二区三区高清在线| 国产精品家庭影院| 久久久久久久精| 91精品欧美综合在线观看最新 | 久久精品国产澳门| 亚洲大尺度视频在线观看| 自拍偷拍国产精品| 中文字幕av一区二区三区免费看| 欧美一区二区视频在线观看2020| 色噜噜狠狠成人网p站| 成人激情免费电影网址| 国产不卡视频在线播放| 国产在线视频不卡二| 麻豆精品久久精品色综合| 日本视频一区二区| 婷婷综合在线观看| 蜜臀va亚洲va欧美va天堂 | 国产亚洲综合性久久久影院| 7777精品伊人久久久大香线蕉| 在线视频国内自拍亚洲视频| 91美女精品福利| 日本丰满少妇一区二区三区| 91在线视频免费91| 色婷婷亚洲精品| 在线观看日产精品| 精品视频全国免费看| 欧美日韩国产影片| 在线不卡免费av| 欧美成人猛片aaaaaaa| 久久男人中文字幕资源站| 久久精品视频免费观看| 欧美国产丝袜视频| 亚洲视频免费观看| 午夜精品久久久久| 黄网站免费久久| 成人妖精视频yjsp地址| 北条麻妃一区二区三区| 一本一本久久a久久精品综合麻豆| 91欧美一区二区| 69久久99精品久久久久婷婷 | 91麻豆精东视频| 欧美亚洲尤物久久| 精品久久国产97色综合| 久久精品一区四区| 亚洲欧美日本在线| 亚洲1区2区3区4区| 国产一本一道久久香蕉| 一本色道久久综合狠狠躁的推荐| 在线观看视频一区| 日韩一区和二区| 亚洲视频每日更新| 免费在线一区观看| 99久久精品免费精品国产| 欧美性色欧美a在线播放| 精品免费视频一区二区| 亚洲同性gay激情无套| 五月天激情综合| 成人午夜视频福利| 91麻豆精品国产91久久久久久久久| 久久这里只有精品首页| 亚洲欧美日韩国产成人精品影院 | 成人免费福利片| 欧美日韩一区不卡| 国产日韩欧美综合一区| 亚洲18影院在线观看| 岛国精品在线播放| 日韩精品影音先锋| 亚洲综合在线电影| 国产乱码精品一区二区三区忘忧草 | 欧美日韩在线观看一区二区| 精品国产麻豆免费人成网站| 亚洲精品日产精品乱码不卡|