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

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

?? rdapushdlg.cpp

?? 對應<EVC高級編程及其應用開發>中在wince系統下遠程訪問sql數據庫的一段代碼,測試通過完整版(包括關鍵語句),有些例子的源碼少了幾句話,實際運行并不正常
?? CPP
字號:
// RDAPushDlg.cpp : implementation file
//

#include "stdafx.h"
#include "RDAPush.h"
#include "RDAPushDlg.h"

#include "DlgPush.h"
#include "DlgPull.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CRDAPushDlg dialog

CRDAPushDlg::CRDAPushDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CRDAPushDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CRDAPushDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CRDAPushDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CRDAPushDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CRDAPushDlg, CDialog)
	//{{AFX_MSG_MAP(CRDAPushDlg)
	ON_BN_CLICKED(IDC_PUSH, OnPush)
	ON_BN_CLICKED(IDC_PULL, OnPull)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRDAPushDlg message handlers

BOOL CRDAPushDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	CenterWindow(GetDesktopWindow());	// center to the hpc screen

	// TODO: Add extra initialization here
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}
//顯示遠程數據訪問時的錯誤
void    CRDAPushDlg::ShowErrors(ISSCEErrors* pISSCEErrors)
{
	HRESULT       hr;
	LONG          cbBuf;
	LONG          i;
	LONG          lErrorCount;
	LONG          lErrorIndex;
	LONG          lParamCount;
	LONG          lParamIndex;
	VARIANT       var;
	VARIANT       varParam;
	WCHAR         wszBuff[4096];
	WCHAR*        pwszBuffPos   = &wszBuff[0];
	BSTR          bstr;
	ISSCEError*   pISSCEError   = NULL;
	ISSCEParams*  pISSCEParams  = NULL;
	ISSCEParam*   pISSCEParam   = NULL;
	BOOL          fSuccess      = FALSE;
	
	//初始化變量
	VariantInit(&var);
	VariantInit(&varParam);
	
	//通過IISSCEErrors接口得到發生錯誤的數量
	if(FAILED(hr = pISSCEErrors->get_Count(&lErrorCount))) 
		goto Exit;
	if (lErrorCount <= 0)
	{
		::MessageBox(NULL, L"No errors!",L"show error", MB_OK);
		fSuccess = TRUE;
		goto Exit;
	}
	
	//用彈出對話框顯示每一條發生的錯誤
	for (lErrorIndex = 0; lErrorIndex < lErrorCount; lErrorIndex++)
    {
		cbBuf = swprintf(pwszBuffPos, L"ERROR  %d of %d",
			lErrorIndex+1, lErrorCount);
		pwszBuffPos += cbBuf;
		
		//得到錯誤記錄
		var.vt = VT_I4;
		var.lVal = lErrorIndex;
		if(FAILED(hr = pISSCEErrors->get_Item(var, &pISSCEError))) goto Exit;
		
		//得到錯誤詳細信息
		if (FAILED(hr = pISSCEError->get_Description(&bstr))) goto Exit;
		cbBuf = swprintf(pwszBuffPos, L"DESCRIPTION: '%s'", bstr);
		pwszBuffPos += cbBuf;
		SysFreeString(bstr);
		
		//錯誤信息編號
		if (FAILED(hr = pISSCEError->get_Number(&i))) goto Exit;
		cbBuf = swprintf(pwszBuffPos, L"NUMBER: %8.8X\r", i);
		pwszBuffPos += cbBuf;
		
		//本地錯誤
		if (FAILED(hr = pISSCEError->get_NativeError(&i))) goto Exit;
		cbBuf = swprintf(pwszBuffPos, L"NATIVE_ERROR: %d", i);
		pwszBuffPos += cbBuf;
		
		//得到錯誤源
		if (FAILED(hr = pISSCEError->get_Source(&bstr))) goto Exit;
		cbBuf = swprintf(pwszBuffPos, L"SOURCE: '%s'", bstr);
		pwszBuffPos += cbBuf;
		SysFreeString(bstr);
		
		//得到錯誤參數信息
		if (FAILED(hr = pISSCEError->get_Params(&pISSCEParams))) goto Exit;
		
		//得到錯誤參數的個數
		if (FAILED(hr = pISSCEParams->get_Count(&lParamCount))) goto Exit;
		
		//顯示每一個參數
		for (lParamIndex = 0; lParamIndex < lParamCount; lParamIndex++)
        {
			
			//得到錯誤參數對象
			var.vt = VT_I4;
			var.lVal = lParamIndex;
			if (FAILED(hr = pISSCEParams->get_Item(var, &pISSCEParam))) goto Exit;
			
			//得到并顯示錯誤參數值
			if (FAILED(hr = pISSCEParam->get_Param(&varParam))) goto Exit;
			if (VT_I4 == varParam.vt || VT_UI4 == varParam.vt)
            {
				cbBuf = swprintf(pwszBuffPos, L"P%d: %d", lParamIndex,
					(LONG) varParam.lVal);
            }
			else if (VT_I2 == varParam.vt || VT_UI2 == varParam.vt)
            {
				cbBuf = swprintf(pwszBuffPos, L"P%d: %d", lParamIndex,
					(LONG) varParam.iVal);
            }
			else if (VT_BSTR == varParam.vt)
            {
				cbBuf = swprintf(pwszBuffPos, L"P%d: '%s'", lParamIndex, 
					varParam.bstrVal);
            }
			pwszBuffPos += cbBuf;
			
			//清空參數變量
			VariantClear(&varParam);
			
			//釋放參數對象
			pISSCEParam->Release();
			pISSCEParam = NULL;
        }
		cbBuf = swprintf(pwszBuffPos, L"");
		pwszBuffPos += cbBuf;
		
    }
	
	//用彈出框顯示錯誤信息
	::MessageBox(NULL, wszBuff,L"Error", MB_OK);
	fSuccess = TRUE;
	
Exit:
	// 釋放錯誤參數對象
	if (pISSCEParam)
    {
		pISSCEParam->Release();
		pISSCEParam = NULL;
    }
	
	//釋放錯誤參數集對象
	if (pISSCEParams)
    {
		pISSCEParams->Release();
		pISSCEParams = NULL;
    }
	
	//釋放錯誤對象
	if (pISSCEError)
    {
		pISSCEError->Release();
		pISSCEError = NULL;
    }
	
	//如果獲取錯誤信息失敗
	if (!fSuccess)
    {
		::MessageBox(NULL, L"Faile to get errors!",L"show error", MB_OK);
    }
	return;
}

//向服務器提交數據
void CRDAPushDlg::OnPush() 
{
	ISSCERDA*			pCERDA = NULL;
	BSTR bStr = NULL;
	BSTR bConnectStr = NULL;
	BSTR bLocalConnectStr = NULL;
	BSTR bLocalTableName = NULL;
	
	SYSTEMTIME			systemtime;					// 系統時間
	double				timeTotal;					// 
	__int64				timeStart = 0;				// 開始操作時的時間
	__int64				timeStop;					// 結束操作時的時間
	WCHAR	wszBuffer[512];
	
   	CDlgPush dlgPush;
	if (dlgPush.DoModal())
	{
		//得到pCERDA接口總共消耗的時間
		HRESULT hr=CoInitializeEx(NULL,COINIT_MULTITHREADED);
	    hr = CoCreateInstance(CLSID_RemoteDataAccess, NULL, CLSCTX_INPROC_SERVER, IID_ISSCERDA, (LPVOID *)&pCERDA);
		ASSERT(hr == S_OK);
		ASSERT(pCERDA != NULL);
		//1、設置Internet URL
		bStr = SysAllocString(dlgPush.m_internetURL);
		pCERDA->put_InternetURL(bStr);
		SysFreeString(bStr);
		
		//2、設置Internet userName
		bStr = SysAllocString(dlgPush.m_internetUsername);
		pCERDA->put_InternetLogin(bStr);
		SysFreeString(bStr);
		
		//3、設置Internet password
		bStr = SysAllocString(dlgPush.m_internetPassword);
		pCERDA->put_InternetPassword(bStr);
		SysFreeString(bStr);
		
		
		//4、設置服務器連接串
		bConnectStr = SysAllocString(dlgPush.m_connectStr);
		
		//5、設置本地數據庫連接串
		bLocalConnectStr = SysAllocString(dlgPush.m_localConnectStr);
		pCERDA->put_LocalConnectionString(bLocalConnectStr);
		SysFreeString(bStr);
		
		//6、設置本地表名
		bLocalTableName = SysAllocString(dlgPush.m_localTableName);
		
		
		//記錄向服務器提交數據前的時間
		GetLocalTime(&systemtime);
		SystemTimeToFileTime(&systemtime, (FILETIME*)&timeStart);
		
        //向服務器提交數據
		hr = pCERDA->Push(bLocalTableName,bConnectStr, BATCHINGOFF);
		
		SysFreeString(bLocalTableName);
		SysFreeString(bConnectStr);
		
		if (SUCCEEDED(hr))
		{
			//記錄向服務器提交數據后的時間
			GetLocalTime(&systemtime);
			SystemTimeToFileTime(&systemtime, (FILETIME*)&timeStop);
            //記錄向服務器提交數據總的時間
			timeTotal = ((double)(timeStop - timeStart) / 10000000);
			swprintf(wszBuffer, _T("push succeed!\r\n\r\it takes time = %8.3fseconds!"), timeTotal); 
			AfxMessageBox(wszBuffer);
		}
		else
		{	
			//顯示向服務器提交數據失敗信息
			ISSCEErrors  *pISSCEErrors = NULL;
			if(SUCCEEDED(hr = pCERDA->get_ErrorRecords(&pISSCEErrors)))
			{
				ShowErrors(pISSCEErrors);
				pISSCEErrors->Release();
			}
		}
		//釋放遠程訪問接口
		CoUninitialize();
		pCERDA->Release();
	}
}

void CRDAPushDlg::OnPull() 
{
	ISSCERDA*			pCERDA = NULL;
	BSTR bStr = NULL;
	BSTR bConnectStr = NULL;
	BSTR bQueryStr = NULL;
	BSTR bLocalConnectStr = NULL;
	BSTR bLocalTableName = NULL;
	BSTR bErrorTableName  = NULL;
	RDA_TRACKOPTION trackOption = TRACKINGOFF;
	
	SYSTEMTIME			systemtime;					// 系統時間
	double				timeTotal;					// 總共消耗的時間
	__int64				timeStart = 0;				// 開始操作時的時間
	__int64				timeStop;					// 結束操作時的時間
	WCHAR	wszBuffer[512];
	
   	CDlgPull dlgPull;
	if (dlgPull.DoModal())
	{
		//得到pCERDA接口
		HRESULT hr=CoInitializeEx(NULL,COINIT_MULTITHREADED);
		hr = CoCreateInstance(CLSID_RemoteDataAccess, NULL, CLSCTX_INPROC_SERVER, IID_ISSCERDA, (LPVOID *)&pCERDA);
		ASSERT(hr == S_OK);
		ASSERT(pCERDA != NULL);
		//1、設置Internet URL
		bStr = SysAllocString(dlgPull.m_internetURL);
		pCERDA->put_InternetURL(bStr);
		SysFreeString(bStr);
		
		//2、設置Internet userName
		bStr = SysAllocString(dlgPull.m_internetUsername);
		pCERDA->put_InternetLogin(bStr);
		SysFreeString(bStr);
		
		//3、設置Internet password
		bStr = SysAllocString(dlgPull.m_internetPassword);
		pCERDA->put_InternetPassword(bStr);
		SysFreeString(bStr);
		
		//4、得到跟蹤類型
		if (dlgPull.m_tracking == L"TRACKINGON")
		{
			trackOption = TRACKINGON;
		}else if (dlgPull.m_tracking == L"TRACKINGOFF")
		{
			trackOption = TRACKINGOFF;
		}else if (dlgPull.m_tracking == L"TRACKINGON_INDEXES")
		{
			trackOption = TRACKINGON_INDEXES;
		}else if(dlgPull.m_tracking == L"TRACKINGOFF_INDEXES")
		{
			trackOption = TRACKINGOFF_INDEXES;
		}else
		{
			trackOption = TRACKINGOFF;
		}
		
		//5、設置錯誤表名
		bErrorTableName = SysAllocString(dlgPull.m_errorTableName);
		
		//6、設置服務器連接串
		bConnectStr = SysAllocString(dlgPull.m_connectStr);
		
		//7、設置本地數據庫連接串
		bLocalConnectStr = SysAllocString(dlgPull.m_localConnectStr);
		pCERDA->put_LocalConnectionString(bLocalConnectStr);
		SysFreeString(bStr);
		
		//8、設置本地表名
		bLocalTableName = SysAllocString(dlgPull.m_localTableName);
		
		//9、設置查詢的SQL語句
		bQueryStr = SysAllocString(dlgPull.m_queryStr);
		
		//記錄獲取服務器數據前的時間
		GetLocalTime(&systemtime);
		SystemTimeToFileTime(&systemtime, (FILETIME*)&timeStart);
		
        //獲取服務器數據
		hr = pCERDA->Pull(bLocalTableName, 
			bQueryStr, 
			bConnectStr, 
			trackOption,
			bErrorTableName);
		
		SysFreeString(bLocalTableName);
		SysFreeString(bQueryStr);
		SysFreeString(bConnectStr);
		SysFreeString(bErrorTableName);
		
		if (SUCCEEDED(hr))
		{
			//記錄獲取服務器數據后的時間
			GetLocalTime(&systemtime);
			SystemTimeToFileTime(&systemtime, (FILETIME*)&timeStop);
            //記錄獲取服務器數據的總時間
			timeTotal = ((double)(timeStop - timeStart) / 10000000);
			swprintf(wszBuffer, _T("pull success \r\n\r\it takes = %8.3fsecondes"), timeTotal); 
			AfxMessageBox(wszBuffer);
		}
		else
		{	
			//顯示獲取服務器數據錯誤
			ISSCEErrors  *pISSCEErrors = NULL;
			if(SUCCEEDED(hr = pCERDA->get_ErrorRecords(&pISSCEErrors)))
			{
				ShowErrors(pISSCEErrors);
				pISSCEErrors->Release();
			}
		}
		//釋放遠程訪問接口
		CoUninitialize();
		pCERDA->Release();
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产视频一区在线观看| 91免费观看视频在线| 国产福利一区二区三区在线视频| 国产乱码字幕精品高清av| 国产.欧美.日韩| 在线观看视频一区二区| 日韩欧美成人一区| 亚洲国产精品传媒在线观看| 亚洲一区在线视频| 久草在线在线精品观看| 97久久久精品综合88久久| 91精品视频网| 国产精品女同互慰在线看| 亚洲国产毛片aaaaa无费看| 国产专区综合网| 一本色道综合亚洲| 欧美精品一区在线观看| 一区二区三区日韩| 国产综合久久久久久鬼色| 色吊一区二区三区| 精品久久一区二区| 夜色激情一区二区| 国产精品一线二线三线| 欧美日韩国产影片| 国产精品每日更新| 蜜臀av性久久久久av蜜臀妖精| 99麻豆久久久国产精品免费| 日韩一区二区三区观看| 亚洲免费观看高清在线观看| 国产在线不卡一区| 欧美美女一区二区在线观看| 国产精品视频你懂的| 蜜桃视频在线观看一区二区| 91丨porny丨国产入口| 精品国产露脸精彩对白| 亚洲一区欧美一区| 成人动漫中文字幕| 精品久久久久久最新网址| 一区二区三区视频在线观看| 成人性生交大合| 日韩精品中文字幕一区二区三区 | 久久精品国产一区二区| 91看片淫黄大片一级| 久久―日本道色综合久久| 午夜免费欧美电影| 色婷婷亚洲综合| 中文字幕中文乱码欧美一区二区| 狠狠色丁香婷综合久久| 制服丝袜国产精品| 亚洲福利视频一区| 色偷偷久久人人79超碰人人澡| 国产欧美一区视频| 国产揄拍国内精品对白| 日韩一区二区在线看| 婷婷综合五月天| 欧美性色黄大片手机版| 一区二区三区在线免费视频| 99久久久无码国产精品| 国产视频一区二区在线| 国产精品自在欧美一区| 欧美大片一区二区| 美女一区二区久久| 欧美一级在线观看| 日韩精品一二三四| 69堂精品视频| 婷婷一区二区三区| 一区二区高清视频在线观看| 成人18视频日本| 欧美国产日韩亚洲一区| 国产91丝袜在线观看| 久久夜色精品一区| 狠狠狠色丁香婷婷综合久久五月| 欧美刺激脚交jootjob| 日韩国产欧美一区二区三区| 在线成人免费视频| 日韩avvvv在线播放| 678五月天丁香亚洲综合网| 日韩精品久久理论片| 欧美喷水一区二区| 肉丝袜脚交视频一区二区| 6080午夜不卡| 欧美aaaaa成人免费观看视频| 欧美一区二区三区白人| 美国毛片一区二区| 久久婷婷久久一区二区三区| 国产精选一区二区三区| 国产精品欧美一区喷水| 色欧美88888久久久久久影院| 亚洲综合一区二区三区| 欧美日韩aaaaa| 久久99精品久久久久婷婷| 久久精品一区二区三区不卡 | 久久亚洲一区二区三区明星换脸| 国产综合久久久久影院| 国产精品美女视频| 在线看国产日韩| 青青草原综合久久大伊人精品优势| 91精品国产麻豆国产自产在线| 蜜臀av性久久久久蜜臀av麻豆| 久久亚洲二区三区| voyeur盗摄精品| 亚洲国产视频一区| 精品入口麻豆88视频| 国产91清纯白嫩初高中在线观看 | 91免费看视频| 午夜精品久久久久久久久久久| 日韩精品一区二区三区中文精品| 国产成人免费视频| 亚洲欧美偷拍卡通变态| 欧美精品aⅴ在线视频| 精品一区二区三区不卡 | 成人av电影在线网| 亚洲影院理伦片| 精品日韩在线一区| 92精品国产成人观看免费| 视频一区国产视频| 国产网红主播福利一区二区| 在线免费观看不卡av| 久久电影网电视剧免费观看| 亚洲国产经典视频| 在线播放欧美女士性生活| 国产精品一区二区果冻传媒| 夜夜嗨av一区二区三区中文字幕| 欧美成人aa大片| 色诱视频网站一区| 精品综合久久久久久8888| 亚洲欧美日韩久久| 欧美成人综合网站| 91精彩视频在线观看| 国产一区二区0| 午夜精品123| 中文字幕在线不卡国产视频| 日韩午夜在线观看视频| 91小宝寻花一区二区三区| 久久国产乱子精品免费女| 亚洲免费毛片网站| 久久久激情视频| 欧美高清你懂得| 91香蕉视频在线| 国产一区二区三区免费| 五月激情丁香一区二区三区| 国产精品免费久久久久| 欧美mv日韩mv国产| 欧美日韩一区久久| 波多野结衣中文字幕一区 | 日韩午夜av电影| 日本高清无吗v一区| 国产98色在线|日韩| 毛片av一区二区| 亚洲一卡二卡三卡四卡| 中文字幕在线免费不卡| 久久久亚洲欧洲日产国码αv| 欧美高清视频一二三区 | 午夜久久电影网| 亚洲欧美色一区| 日本一区二区在线不卡| 精品国产凹凸成av人网站| 欧美日韩视频在线第一区 | 亚洲欧美福利一区二区| 久久久久久久av麻豆果冻| 日韩午夜激情av| 欧美精品精品一区| 欧美日韩五月天| 在线观看免费一区| 91麻豆自制传媒国产之光| 国产成人精品免费| 国产一区二区三区免费| 久久国产精品72免费观看| 免费看黄色91| 免费在线视频一区| 天天综合天天综合色| 亚洲曰韩产成在线| 亚洲乱码日产精品bd| 亚洲女同一区二区| 亚洲欧洲国产日韩| 亚洲天堂中文字幕| 亚洲天堂成人网| 亚洲精品国产无套在线观| 亚洲色大成网站www久久九九| 国产精品电影一区二区三区| 国产精品私房写真福利视频| 国产精品蜜臀在线观看| 国产精品毛片高清在线完整版| 欧美激情一区在线| 国产精品嫩草影院av蜜臀| 国产精品免费视频观看| 国产精品久久久久久久久晋中| 亚洲国产精品高清| 日韩一区欧美小说| 亚洲精品国产高清久久伦理二区| 亚洲美女精品一区| 亚洲小说欧美激情另类| 性感美女久久精品| 日本亚洲最大的色成网站www| 免费成人你懂的| 国产资源精品在线观看| 成人精品视频一区| 一本色道亚洲精品aⅴ| 欧美三级乱人伦电影| 91精品国产综合久久久久久久 |