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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dumpproviderproperties.cpp

?? Interactive SQL Tool
?? CPP
字號:
// DumpProviderProperties.cpp : implementation file
//

#include "stdafx.h"
#include "QryTool.h"
#include "DumpProviderProperties.h"
#include "MainFrm.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDumpProviderProperties dialog

CDumpProviderProperties::CDumpProviderProperties(CWnd* pParent /*=NULL*/)
	: CDialog(CDumpProviderProperties::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDumpProviderProperties)
	m_strSQL = _T("SELECT 2*3");
	//}}AFX_DATA_INIT
}

CDumpProviderProperties::~CDumpProviderProperties()
{
}

void CDumpProviderProperties::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDumpProviderProperties)
	DDX_Text(pDX, IDC_SQL, m_strSQL);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CDumpProviderProperties, CDialog)
	//{{AFX_MSG_MAP(CDumpProviderProperties)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDumpProviderProperties message handlers

void CDumpProviderProperties::OnOK() 
{
	CWaitCursor wait;

	m_pChildFrame->m_wndStatusBar.SetPaneText(0, _T("Dumping provider properties..."));

	bool bException = false;
	try
	{
		UpdateData();
		
		HRESULT hr = S_OK;

		m_pChildFrame->CloseRecordset();

		BSTR bstrSQL = m_strSQL.AllocSysString();
		hr = m_pChildFrame->m_ptrRecordset->Open(
				bstrSQL,
				m_pChildFrame->m_ptrConnection.GetInterfacePtr(),
				ADODB::adOpenForwardOnly,
				ADODB::adLockReadOnly,
				ADODB::adCmdText
				);
		::SysFreeString(bstrSQL);
		if(FAILED(hr))
			_com_issue_error(hr);
		
		long lState = ADODB::adStateClosed;
		hr = m_pChildFrame->m_ptrRecordset->get_State(&lState);
		if(FAILED(hr))
			_com_issue_error(hr);
		if(m_pChildFrame->m_ptrRecordset != NULL && lState == ADODB::adStateClosed)
		{
			AfxMessageBox(_T("Query returned zero records/columns. Cannot dump provider properties."));
			bException = true;
		}
		else
		{
			CString sProviderName = m_pChildFrame->m_strProviderName;
			int nPos = sProviderName.Find('.');
			if(nPos != -1)
				sProviderName = sProviderName.Left(nPos);
			TCHAR lpszTempPath[_MAX_PATH];
			DWORD dwSize = ::GetTempPath(_MAX_PATH, lpszTempPath);
			ASSERT(dwSize); 
			CString sFileName = lpszTempPath;
			nPos = sFileName.ReverseFind(_T('\\'));
			ASSERT(nPos != -1);
			sFileName = sFileName.Left(nPos) + _T("\\[") + 	sProviderName + _T("_") +
				m_pChildFrame->m_strDBMS + _T("].txt");
			int nLength = sFileName.GetLength();
			for(int n = 0; n < nLength; n++)
			{
				if(sFileName.GetAt(n) == _T(' '))
					sFileName.SetAt(n, _T('_'));
			}
			CString sBuff;
			CStdioFile file;
			CFileException fileException;
			BOOL bRet = file.Open(sFileName, CFile::typeText | CFile::modeCreate |  
						CFile::modeWrite, &fileException);
			if(!bRet)
			{
				bException = true;
				sBuff.Format(_T("File Path Name: <%s> "), sFileName);
				sBuff += CHelpers::GetFileExceptionError(fileException.m_cause);
				AfxMessageBox(sBuff);
			}
			else
			{
				DumpProviderProperties(&file);
				file.Close();
			
				HINSTANCE h = ::ShellExecute(NULL, _T("open"), sFileName, NULL,
					NULL, SW_SHOWNORMAL);
				if((UINT)h > 32)
					;
				else
				{
					bException = true;
					AfxMessageBox(_T("Error dumping provider properties."));
				}
			}

			m_pChildFrame->CloseRecordset();
		}
	}
	catch(const _com_error& e)
	{
		bException = true;

		CString sMsg = m_pChildFrame->GetProviderError();
		if(sMsg.IsEmpty())
			sMsg = m_pChildFrame->GetComError(e);
		
		AfxMessageBox(sMsg);

		GetDlgItem(IDC_SQL)->SetFocus();
	}
	catch(...)
	{
		AfxMessageBox(_T("Errors occurred."));
	}

	if(m_pChildFrame->m_bIsTSQLSupported)
	{
		m_strSQL.MakeUpper();
		if(m_strSQL.Find(_T("USE ")) != -1)
		{
			if(!m_pChildFrame->SelectDataBaseEx())
				TRACE(_T("Error selecting database context.\n"));
		}
	}

	m_pChildFrame->m_wndStatusBar.SetPaneText(0, _T(""));

	if(!bException)
		CDialog::OnOK();
}

void CDumpProviderProperties::DumpProviderProperties(CStdioFile* pFile)
{
	CWaitCursor wait;

	ASSERT(pFile && pFile->m_pStream);

	pFile->WriteString(_T("Properties Collection for the Connection object\n"));
	pFile->WriteString(_T("-----------------------------------------------\n"));
	pFile->WriteString(_T("\n"));
	ADODB::PropertiesPtr ptrProperties = NULL;
	HRESULT hr = m_pChildFrame->m_ptrConnection->get_Properties(&ptrProperties);
	if(FAILED(hr))
		_com_issue_error(hr);
	DumpProperty(ptrProperties, pFile);

	pFile->WriteString(_T("\nProperties Collection for the Command object"));
	pFile->WriteString(_T("\n--------------------------------------------"));
	pFile->WriteString(_T("\n\n"));
	hr = m_pChildFrame->m_ptrCommand->get_Properties(&ptrProperties);
	if(FAILED(hr))
		_com_issue_error(hr);
	hr = ptrProperties->Refresh();
	if(FAILED(hr))
		_com_issue_error(hr);
	DumpProperty(ptrProperties, pFile);

	pFile->WriteString(_T("\nProperties Collection for the Recordset object"));
	pFile->WriteString(_T("\n----------------------------------------------"));
	pFile->WriteString(_T("\n\n"));
	hr = m_pChildFrame->m_ptrRecordset->get_Properties(&ptrProperties);
	if(FAILED(hr))
		_com_issue_error(hr);
	hr = ptrProperties->Refresh();
	if(FAILED(hr))
		_com_issue_error(hr);
	DumpProperty(ptrProperties, pFile);

	ADODB::FieldsPtr ptrFields = NULL;
	hr = m_pChildFrame->m_ptrRecordset->get_Fields(&ptrFields);
	if(FAILED(hr))
		_com_issue_error(hr);
	ADODB::FieldPtr ptrField = NULL;
	hr = ptrFields->get_Item(_variant_t(0L), &ptrField);
	if(FAILED(hr))
		_com_issue_error(hr);
	pFile->WriteString(_T("\nProperties Collection for the Field object"));
	pFile->WriteString(_T("\n------------------------------------------"));
	pFile->WriteString(_T("\n\n"));
	hr = ptrField->get_Properties(&ptrProperties);
	if(FAILED(hr))
		_com_issue_error(hr);
	hr = ptrProperties->Refresh();
	if(FAILED(hr))
		_com_issue_error(hr);
	DumpProperty(ptrProperties, pFile);
}

void CDumpProviderProperties::DumpProperty(const ADODB::PropertiesPtr& ptrProperties,
	CStdioFile* pFile)
{
    ASSERT(ptrProperties != NULL);
	ASSERT(pFile && pFile->m_pStream);
	long nCount = 0;
	HRESULT hr = ptrProperties->get_Count(&nCount);
	if(FAILED(hr))
		_com_issue_error(hr);
	CString strTmp;
	// Enumerate through properties collection
	ADODB::PropertyPtr ptrProperty;
	for(int n = 0; n < nCount; n++ )
    {
		try
		{
			// Get Current Property
			ptrProperty = ptrProperties->GetItem(_variant_t((long)n));
			
			// Display Name
			strTmp.Format(_T("Property %03d: %s"),
				n+1, (LPCTSTR)ptrProperty->GetName());
			pFile->WriteString(strTmp + _T("\n"));
			
			// Display Type
			strTmp.Format(_T("\t\t  Type       = %s"),
				(LPCTSTR)CHelpers::GetType((int)ptrProperty->GetType()));
			pFile->WriteString(strTmp + _T("\n"));
			
			// Display Value
			strTmp.Format(_T("\t\t  Value      = %s"),
				(LPCTSTR)CHelpers::CrackStrVariant(ptrProperty->GetValue()));
			pFile->WriteString(strTmp + _T("\n"));
			
			// Display Attributes
			strTmp.Format(_T("\t\t  Attributes = %s"),
				(LPCTSTR)CHelpers::GetPropertyAttributes(
				(ADODB::PropertyAttributesEnum)ptrProperty->GetAttributes())); 
			pFile->WriteString(strTmp + _T("\n"));
		}
		catch(const _com_error& e)
		{
			CString sMsg = m_pChildFrame->GetProviderError();
			if(sMsg.IsEmpty())
				sMsg = m_pChildFrame->GetComError(e);
			TRACE(_T("%s\n"), (LPCTSTR)sMsg);
		}
		catch(...)
		{
			TRACE(_T("Errors occurred.\n"));
		}
    }
}

BOOL CDumpProviderProperties::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
	ASSERT(pFrame);
	m_pChildFrame = (CChildFrame*)pFrame->MDIGetActive();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频一二三| 风间由美一区二区av101| 国产成人免费视频一区| 欧美亚洲自拍偷拍| 国产精品污网站| 国产在线视频精品一区| 精品视频在线视频| 中文字幕一区二区三区不卡在线| 日韩精品亚洲一区二区三区免费| 99国产精品久久久久久久久久久 | 日韩国产一区二| av在线综合网| 中文字幕精品—区二区四季| 视频一区二区欧美| 欧美性大战久久久| 亚洲人妖av一区二区| 国产91精品欧美| 国产亚洲午夜高清国产拍精品| 日韩电影一区二区三区| 91黄色免费观看| 亚洲精品亚洲人成人网在线播放| 国产成a人无v码亚洲福利| 日韩欧美国产午夜精品| 日本不卡在线视频| 欧美日韩一区不卡| 一区二区三区欧美激情| 色综合久久久久| 又紧又大又爽精品一区二区| 一本久久精品一区二区| **性色生活片久久毛片| 欧美日韩精品久久久| 中文字幕一区二区三区视频| av中文字幕一区| 亚洲色图.com| 欧洲一区二区三区在线| 一区二区三区不卡视频在线观看| 色婷婷亚洲综合| 一级中文字幕一区二区| 欧美日韩在线不卡| 日本va欧美va瓶| 日韩免费看的电影| 国产剧情av麻豆香蕉精品| 久久午夜色播影院免费高清| 国产精品一区二区久久不卡| 日本一区二区三区四区在线视频| eeuss鲁片一区二区三区在线观看| 国产精品久久久久久久久久久免费看| 成人激情午夜影院| 亚洲激情av在线| 6080亚洲精品一区二区| 激情丁香综合五月| 国产精品卡一卡二| 欧美日韩一区二区在线观看| 免费成人美女在线观看.| 久久久www成人免费毛片麻豆| 成人福利电影精品一区二区在线观看| 亚洲视频免费在线观看| 色悠悠亚洲一区二区| 五月天中文字幕一区二区| 日韩欧美一卡二卡| 国产69精品久久777的优势| 亚洲私人影院在线观看| 欧美精品日韩一本| 激情五月激情综合网| 亚洲欧美色图小说| 日韩一级二级三级| www.亚洲色图| 美日韩一级片在线观看| 国产精品传媒视频| 宅男在线国产精品| 成人福利视频网站| 蜜臀久久99精品久久久久久9| 国产精品天干天干在观线| 欧美日韩精品一区二区天天拍小说 | 亚洲综合免费观看高清完整版在线 | 久久精品国产99国产| 中文欧美字幕免费| 91精品国产综合久久精品app| 国产成人小视频| 三级久久三级久久| 国产精品第一页第二页第三页| 91精品欧美福利在线观看| 成人在线综合网站| 美女视频黄a大片欧美| 亚洲精品乱码久久久久久| 精品国产一区二区三区久久影院 | 国产99久久久精品| 日韩精品成人一区二区三区| 亚洲国产精品99久久久久久久久| 欧美精三区欧美精三区| 97久久精品人人做人人爽50路| 美日韩黄色大片| 亚洲一区二区免费视频| 亚洲视频一区二区在线| 国产精品婷婷午夜在线观看| 久久青草欧美一区二区三区| 在线成人免费视频| 欧美私模裸体表演在线观看| 成人激情电影免费在线观看| 韩国av一区二区三区四区| 日本一不卡视频| 日本怡春院一区二区| 婷婷综合五月天| 亚洲第一搞黄网站| 亚洲午夜免费电影| 亚洲乱码国产乱码精品精的特点 | 日本精品一区二区三区四区的功能| 黄色日韩网站视频| 精品一区二区三区欧美| 成人午夜精品一区二区三区| 国产综合久久久久影院| 久久精品国产亚洲高清剧情介绍| 日韩在线一二三区| 日韩在线卡一卡二| 麻豆精品一二三| 久久国产福利国产秒拍| 国产一区欧美一区| 国产乱国产乱300精品| 国产一区二区三区四| 国产一区二区三区在线观看免费视频 | 亚洲综合偷拍欧美一区色| 亚洲男人的天堂一区二区| 亚洲精品视频在线观看免费| 一区二区三区成人| 图片区小说区国产精品视频| 视频一区中文字幕国产| 亚洲一级不卡视频| 日本亚洲电影天堂| 国内精品视频666| 成人听书哪个软件好| 91在线一区二区| 欧美日韩一级黄| 日韩免费性生活视频播放| 精品国产免费人成电影在线观看四季| 欧美精品一区二区三区很污很色的| 精品国产乱码久久久久久浪潮| 久久综合色鬼综合色| 久久精品人人爽人人爽| 自拍偷在线精品自拍偷无码专区| 亚洲婷婷在线视频| 日韩中文字幕av电影| 国产成人啪免费观看软件| 成人黄色小视频在线观看| 欧美自拍丝袜亚洲| 精品福利一区二区三区| 亚洲国产经典视频| 亚洲一区二区三区四区在线观看| 久久精品国产网站| 99免费精品在线观看| 欧美日韩一区中文字幕| 久久久综合视频| 一区二区在线观看av| 久久99久久99精品免视看婷婷 | 亚洲日本在线天堂| 天堂午夜影视日韩欧美一区二区| 国产精品综合一区二区| 在线观看亚洲a| 国产亚洲成aⅴ人片在线观看| 一区二区三区资源| 国产在线精品一区在线观看麻豆| 在线观看国产91| 久久精品在这里| 天堂成人免费av电影一区| 成人综合婷婷国产精品久久| 欧美日韩1234| 国产精品久久久久aaaa樱花| 免费不卡在线观看| 色综合激情五月| 国产视频在线观看一区二区三区 | 欧美国产日本视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 99久久99久久久精品齐齐| 欧美一卡二卡三卡四卡| 亚洲国产成人91porn| 91在线一区二区三区| 亚洲国产精品激情在线观看| 久久99热99| 欧美高清dvd| 亚洲成人在线观看视频| 色拍拍在线精品视频8848| 国产欧美久久久精品影院| 捆绑变态av一区二区三区| 欧美特级限制片免费在线观看| 亚洲少妇屁股交4| 成人av一区二区三区| 国产日韩欧美a| 国产精品自在在线| 精品国产乱码久久久久久闺蜜| 婷婷六月综合亚洲| 欧美三级蜜桃2在线观看| 亚洲精品亚洲人成人网在线播放| 国产.精品.日韩.另类.中文.在线.播放| 91精品国产综合久久久久久漫画| 一区二区欧美国产| 欧美天天综合网| 亚洲国产精品久久久久秋霞影院 | 国产精品不卡在线| 国产真实乱对白精彩久久| 日韩三级精品电影久久久| 日本女优在线视频一区二区|