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

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

?? pcdmaccessdb.cpp

?? 《Windows CE 權威指南》(作者:(美)CHRIS MUENCH
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// PCDMAccessDB.cpp : Implementation of CPCDMAccessDB
#include "stdafx.h"
#include "PCDMDLL.h"
#include "PCDMAccessDB.h"

/////////////////////////////////////////////////////////////////////////////
// CPCDMAccessDB
// <BOOK_ADDON STEP5 Chapter 8.4.2> **************************************************
void __stdcall _com_issue_error(HRESULT hr)
{
	// Error handling goes here!
}
// </BOOK_ADDON STEP5 Chapter 8.4.2> **************************************************

// <BOOK_ADDON STEP4 Chapter 8.3.3> ******************************************
#define	PCDM_DB	833

STDMETHODIMP CPCDMAccessDB::AddProperty(VARIANT PID, long Sorted)
{
//#ifdef UNDER_CE  // <BOOK_DELETED STEP6 Chapter 9.2.3> *****
VARIANT tvPID;

//<BOOK_ADDON STEP5 Chapter 8.4.2> *********************************
	if (m_useADO!=PCDMADO_NONE)
	{
		if (m_SortCnt<10)
		{
			VariantInit(&tvPID);
			VariantChangeType(&tvPID,&PID,0,VT_I4);
			m_DBSortOrder[m_SortCnt].propid=MAKELONG(CEVT_LPWSTR,tvPID.lVal);
			if (Sorted)
				m_DBSortOrder[m_SortCnt].dwFlags=CEDB_SORT_GENERICORDER;
			else
				m_DBSortOrder[m_SortCnt].dwFlags=0;
			m_SortCnt++;
		}
		return S_OK;
	}
//</BOOK_ADDON STEP5 Chapter 8.4.2> *********************************
	if (Sorted==TRUE)
	{
		VariantInit(&tvPID);
		VariantChangeType(&tvPID,&PID,0,VT_I4);
		m_DBSortOrder[m_SortCnt].propid=MAKELONG(CEVT_LPWSTR,tvPID.lVal);
		m_DBSortOrder[m_SortCnt].dwFlags=CEDB_SORT_GENERICORDER;
		m_SortCnt++;
	}
//#endif	// <BOOK_DELETED STEP6 Chapter 9.2.3> *****
	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::CreateTable(BSTR FileLocation, BSTR Name)
{
//#ifdef UNDER_CE	// <BOOK_DELETED STEP6 Chapter 9.2.3> *****
CEOID	CeOid=0;
HANDLE	tHandle;

//<BOOK_ADDON STEP5 Chapter 8.4.2> *********************************
	if (m_useADO!=PCDMADO_NONE)
	{
		TCHAR strSQL[1024],tStr[200];

		wsprintf(strSQL,TEXT("CREATE DATABASE '%s'"),FileLocation);
		HRESULT hr=m_RS->Open(_variant_t(strSQL),_variant_t(TEXT("")),adOpenForwardOnly , adLockReadOnly , 1);
		wsprintf(strSQL,TEXT("DROP TABLE %s"),Name);
		hr=m_RS->Open(_variant_t(strSQL),_variant_t(FileLocation),adOpenForwardOnly , adLockReadOnly , 1);
		wsprintf(strSQL,TEXT("CREATE TABLE %s ("),Name);
		for (int i=0; i<m_SortCnt; i++)
		{
			wsprintf(tStr,TEXT("Fld%d varchar(200)"),HIWORD(m_DBSortOrder[i].propid));
			wcscat(strSQL,tStr);
			if (i<m_SortCnt-1)
				wcscat(strSQL,TEXT(","));
			else
				wcscat(strSQL,TEXT(")"));
		}
		hr=m_RS->Open(_variant_t(strSQL),_variant_t(FileLocation),adOpenForwardOnly , adLockReadOnly , 1);
		m_SortCnt=0;
		return hr;
	}
//</BOOK_ADDON STEP5 Chapter 8.4.2> *********************************
	tHandle = CeOpenDatabase(&CeOid,Name,0,0,NULL);          	
	if (tHandle!= INVALID_HANDLE_VALUE)
	{
#ifdef UNDER_CE
		CloseHandle(tHandle);
#else
		CeCloseHandle((HANDLE)tHandle);
#endif
		CeDeleteDatabase(CeOid);
	}
	if ((CeOid = CeCreateDatabase(Name,PCDM_DB,
      m_SortCnt,m_DBSortOrder))==NULL)
		return S_FALSE;
//#endif // <BOOK_DELETED STEP6 Chapter 9.2.3> *****

	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::OpenTable(BSTR FileLocation, BSTR Name, VARIANT PID, long *Handle)
{
//#ifdef UNDER_CE		// <BOOK_DELETED STEP6 Chapter 9.2.3> *****
CEOID	CeOid=0;
HANDLE	hDataBase; 
CEPROPID	tPID=0;
VARIANT tvPID;

	VariantInit(&tvPID);
	VariantChangeType(&tvPID,&PID,0,VT_I4);
//<BOOK_ADDON STEP5 Chapter 8.4.2> *********************************
	if (m_useADO!=PCDMADO_NONE)
	{
TCHAR strSQL[1024],tStr[200];
HRESULT hr;
		wsprintf(strSQL,TEXT("SELECT * FROM %s "),Name);
		wsprintf(tStr,TEXT("Order By Fld%d "),tvPID.lVal);
		wcscat(strSQL,tStr);
		hr=m_RS->Open(_variant_t(strSQL),_variant_t(FileLocation),adOpenKeyset , adLockOptimistic , 1);
		*Handle=(long)m_RS;
		return hr;
	}
//</BOOK_ADDON STEP5 Chapter 8.4.2> *********************************

	for (int i=0;i<m_SortCnt;i++)
	{
		if (HIWORD(m_DBSortOrder[i].propid)==tvPID.lVal)
		{
			tPID=MAKELONG(LOWORD(m_DBSortOrder[i].propid),tvPID.lVal);
			break;
		}
	}
	hDataBase = CeOpenDatabase(&CeOid,Name,tPID,0,NULL);          	
	if (hDataBase == INVALID_HANDLE_VALUE)
	{
		*Handle=0;
		return S_FALSE;	
	}
	*Handle=(long)hDataBase;
	VariantCopy(&m_ActPID,&PID);

//#endif	// <BOOK_DELETED STEP6 Chapter 9.2.3> *****
	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::CloseTable(long Handle)
{
	m_SortCnt=0;
	m_rfldCnt=0;
//</BOOK_ADDON STEP5 Chapter 8.4.2> *********************************
	if (m_useADO!=PCDMADO_NONE)
	{
		HRESULT hr=m_RS->Close();
		return hr;
	}
//</BOOK_ADDON STEP5 Chapter 8.4.2> *********************************
#ifdef UNDER_CE	// <BOOK_MOVEDHERE STEP6 Chapter 9.2.3> *****
	CloseHandle((HANDLE)Handle);
//<BOOK_ADDON STEP6 Chapter 9.2.3> *********************************
#else
	CeCloseHandle((HANDLE)Handle);
//</BOOK_ADDON STEP6 Chapter 9.2.3> *********************************
#endif

	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::MoveFirst(long Handle)
{
//#ifdef UNDER_CE	// <BOOK_DELETED STEP6 Chapter 9.2.3> *****
//<BOOK_ADDON STEP5 Chapter 8.4.2> *********************************
	if (m_useADO!=PCDMADO_NONE)
	{
		HRESULT hr=m_RS->MoveFirst();
		return hr;
	}
//</BOOK_ADDON STEP5 Chapter 8.4.2> *********************************
	if (!(m_curRec=CeSeekDatabase((HANDLE)Handle,CEDB_SEEK_BEGINNING, 0, &m_dwIndex)))
		return S_FALSE;
//#endif	// <BOOK_DELETED STEP6 Chapter 9.2.3> *****
	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::MoveLast(long Handle)
{
//#ifdef UNDER_CE	// <BOOK_DELETED STEP6 Chapter 9.2.3> *****
//<BOOK_ADDON STEP5 Chapter 8.4.2> *********************************
	if (m_useADO!=PCDMADO_NONE)
	{
		HRESULT hr=m_RS->MoveLast();
		return hr;
	}
//</BOOK_ADDON STEP5 Chapter 8.4.2> *********************************
	if (!(m_curRec=CeSeekDatabase((HANDLE)Handle, CEDB_SEEK_END,0, &m_dwIndex)))
		return S_FALSE;
//#endif	// <BOOK_DELETED STEP6 Chapter 9.2.3> *****

	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::MoveNext(long Handle)
{
//#ifdef UNDER_CE	// <BOOK_DELETED STEP6 Chapter 9.2.3> *****
//<BOOK_ADDON STEP5 Chapter 8.4.2> *********************************
	if (m_useADO!=PCDMADO_NONE)
	{
		HRESULT hr=m_RS->MoveNext();
		return hr;
	}
//</BOOK_ADDON STEP5 Chapter 8.4.2> *********************************
	if (!(m_curRec=CeSeekDatabase((HANDLE)Handle, CEDB_SEEK_CURRENT, 1, &m_dwIndex)))
		return S_FALSE;
//#endif		// <BOOK_DELETED STEP6 Chapter 9.2.3> *****

	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::MovePrevious(long Handle)
{
//#ifdef UNDER_CE	// <BOOK_DELETED STEP6 Chapter 9.2.3> *****
//<BOOK_ADDON STEP5 Chapter 8.4.2> *********************************
	if (m_useADO!=PCDMADO_NONE)
	{
		HRESULT hr=m_RS->MovePrevious();
		return hr;
	}
//</BOOK_ADDON STEP5 Chapter 8.4.2> *********************************
	if (!(m_curRec=CeSeekDatabase((HANDLE)Handle, CEDB_SEEK_CURRENT, -1, &m_dwIndex)))
		return S_FALSE;
//#endif			// <BOOK_DELETED STEP6 Chapter 9.2.3> *****

	return S_OK;
}

STDMETHODIMP CPCDMAccessDB::FindRecord(long Handle, VARIANT PID, VARIANT Value)
{
//#ifdef UNDER_CE	// <BOOK_DELETED STEP6 Chapter 9.2.3> *****
VARIANT tvPID,tvValue;
		
VariantInit(&tvPID);
VariantInit(&tvValue);
VariantChangeType(&tvPID,&PID,0,VT_I4);
VariantChangeType(&tvValue,&Value,0,VT_BSTR);
//<BOOK_ADDON STEP5 Chapter 8.4.2> *********************************
	switch (m_useADO)
	{
		case PCDMADO_V2:
		case PCDMADO_V3:
			{
				Fields		*pFields;
				Field20		*pField20;
Field	*pField;
				HRESULT hr;
				TCHAR tFldName[10];
				VARIANT_BOOL	tBOF,tEOF;
				VARIANT value,tBookMark;

				VariantInit(&tBookMark);
				m_RS->get_Bookmark(&tBookMark);
				m_RS->get_BOF(&tBOF);
				m_RS->get_EOF(&tEOF);
				if(!(tBOF==VARIANT_TRUE && tEOF==VARIANT_TRUE))
				{
					while (tEOF!=VARIANT_TRUE)
					{
						m_RS->get_Fields(&pFields);
						wsprintf(tFldName,TEXT("Fld%d"),tvPID.lVal);
	if (m_useADO==PCDMADO_V3)
	{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品中文字幕一区二区三区| 在线播放一区二区三区| 欧美亚洲国产一区二区三区va| 欧美疯狂做受xxxx富婆| 国产精品久久久久精k8| 欧美aaaaa成人免费观看视频| 成人黄色小视频在线观看| 欧美久久一区二区| 国产精品美女久久久久久 | 久久精品国产一区二区| 91在线一区二区| 久久久久久久久久久久久女国产乱| 一区二区三区电影在线播| 国产一区视频导航| 日韩视频永久免费| 午夜在线电影亚洲一区| 日本精品视频一区二区三区| 中文字幕av一区二区三区高| 国产一级精品在线| 91麻豆精品国产综合久久久久久| 一区二区三区中文字幕在线观看| 成人av网站免费| 中文字幕国产一区| 福利电影一区二区| 国产午夜精品久久久久久免费视| 卡一卡二国产精品 | 国内一区二区在线| 911精品产国品一二三产区| 亚洲一二三级电影| 91麻豆免费视频| 亚洲天堂久久久久久久| 色综合天天做天天爱| 亚洲欧美一区二区视频| 99在线精品视频| 亚洲男同性恋视频| 欧美日韩精品电影| 蜜桃传媒麻豆第一区在线观看| 7777精品伊人久久久大香线蕉经典版下载| 一区二区成人在线视频| 欧美亚洲高清一区二区三区不卡| 亚洲v精品v日韩v欧美v专区| 欧美一区二区大片| 国产最新精品免费| 国产精品的网站| 色婷婷久久久亚洲一区二区三区| 亚洲靠逼com| 欧美日韩国产不卡| 美女视频一区二区三区| 国产亚洲视频系列| 99久久精品久久久久久清纯| 亚洲一区二区美女| 日韩一区二区三区在线观看| 国内精品国产三级国产a久久| 国产校园另类小说区| 99久久99久久精品免费观看| 亚洲福利一二三区| 精品99久久久久久| 99热精品一区二区| 日韩激情视频网站| 久久久91精品国产一区二区精品| av午夜一区麻豆| 日本vs亚洲vs韩国一区三区二区 | 1000部国产精品成人观看| 色婷婷亚洲综合| 美腿丝袜亚洲三区| 一区在线中文字幕| 欧美一区二区三区视频免费 | 欧美成人福利视频| av中文字幕不卡| 日本不卡1234视频| 国产精品电影一区二区| 91麻豆精品91久久久久同性| 国产成人免费9x9x人网站视频| 亚洲男人的天堂在线aⅴ视频| 91精品国产高清一区二区三区| 成人免费观看av| 奇米综合一区二区三区精品视频| 中文字幕电影一区| 欧美一区二区视频网站| av电影在线观看一区| 免费人成精品欧美精品| 亚洲天堂中文字幕| 精品99一区二区| 欧美精品高清视频| 91玉足脚交白嫩脚丫在线播放| 久久国产福利国产秒拍| 亚洲与欧洲av电影| 中文字幕欧美日本乱码一线二线 | 久久久99免费| 欧美日韩视频在线第一区| 国产suv精品一区二区883| 日韩精品一级中文字幕精品视频免费观看 | 亚洲欧美国产毛片在线| 精品国产一区二区在线观看| 在线观看视频一区| 日韩午夜在线观看| 91福利在线免费观看| 精品视频一区二区三区免费| 一二三区精品视频| 国产无一区二区| 日韩视频中午一区| 欧美男男青年gay1069videost | 国产揄拍国内精品对白| 亚洲国产成人高清精品| 亚洲欧洲精品一区二区三区不卡 | 亚洲美女免费视频| 亚洲蜜桃精久久久久久久| 懂色一区二区三区免费观看| 亚洲一卡二卡三卡四卡五卡| 精品国产乱码久久久久久久久| 一本色道a无线码一区v| 国产欧美日韩中文久久| 91麻豆精品国产91久久久使用方法 | 男女激情视频一区| 污片在线观看一区二区| 亚洲地区一二三色| 亚洲成va人在线观看| 亚洲一区二区三区四区五区黄| 亚洲色图在线播放| 一区二区久久久久久| 午夜精品影院在线观看| 亚洲成在线观看| 亚洲444eee在线观看| 亚洲电影一级片| 日韩有码一区二区三区| 久久99久久精品| 国产麻豆成人传媒免费观看| 国产乱一区二区| 成人深夜福利app| 99精品一区二区三区| 欧美主播一区二区三区| 在线播放日韩导航| 精品久久久久av影院| 国产精品久久免费看| 亚洲欧美日韩久久精品| 久久色成人在线| 樱桃国产成人精品视频| 国产99久久久久久免费看农村| 丁香激情综合五月| www.日韩av| 91精品在线观看入口| 91影院在线观看| 国产成人av影院| 懂色av一区二区三区免费看| 精品日韩欧美一区二区| 日韩亚洲欧美成人一区| www成人在线观看| 性久久久久久久| 色国产精品一区在线观看| 欧美成人精精品一区二区频| 香蕉影视欧美成人| 欧美色偷偷大香| 亚洲国产精品久久久久秋霞影院| av亚洲精华国产精华精| 欧美极品xxx| 99久久免费国产| 亚洲欧美日韩小说| 99国产精品久| 亚洲国产精品久久一线不卡| 91色porny蝌蚪| 首页国产丝袜综合| 日韩一级精品视频在线观看| 奇米在线7777在线精品| 26uuu色噜噜精品一区二区| 国产成人精品亚洲777人妖| 91一区二区在线观看| 久久婷婷综合激情| 成人免费视频视频| 亚洲欧美偷拍卡通变态| 欧美精品三级日韩久久| 精品在线免费观看| 亚洲精品久久久蜜桃| 日韩一级高清毛片| 不卡一区二区在线| 日韩影院精彩在线| 亚洲日本va午夜在线影院| 日韩一区二区精品| 成人av在线电影| 日韩精品一二区| 亚洲精品视频在线观看网站| 精品国产网站在线观看| 99久久国产综合精品麻豆| 久久久久97国产精华液好用吗| 欧美亚洲国产怡红院影院| 国产精品主播直播| 蜜臀av性久久久久蜜臀av麻豆| 亚洲男人的天堂av| 中文字幕在线观看不卡| 欧美一区二区三区公司| 欧美日韩欧美一区二区| eeuss国产一区二区三区| 狠狠色丁香久久婷婷综合_中 | 欧美丝袜自拍制服另类| 福利一区福利二区| 成人禁用看黄a在线| 精品一区二区三区免费视频| 奇米在线7777在线精品| 日本成人在线看| 蜜臀av性久久久久av蜜臀妖精| 日本不卡在线视频|