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

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

?? wcedbdoc.cpp

?? WinCE5.0 EVC4.0 MFC應用程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
// wcedbdoc.cpp : implementation of the CWCEDBDoc class
//

#include "stdafx.h"

#include "wcedbtst.h"
#include "wcedbdoc.h"


// Define app-defined values
const DWORD DB_IDENT_PEOPLE  = 12345;
const WCHAR DB_NAME_PEOPLE[] = _T("People");
const WORD  PROP_LASTNAME    = 101,  
            PROP_FIRSTNAME   = 102,  
            PROP_AGE         = 103,
#if (_WIN32_WCE <= 211)			
            PROP_GENDER      = 104;
#else // _WIN32_WCE
            PROP_GENDER      = 104,
			PROP_MARRIED     = 105,
			PROP_SALARY      = 106;
#endif // _WIN32_WCE



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

/////////////////////////////////////////////////////////////////////////////
// CWCEDBDoc

IMPLEMENT_DYNCREATE(CWCEDBDoc, CDocument)

BEGIN_MESSAGE_MAP(CWCEDBDoc, CDocument)
	//{{AFX_MSG_MAP(CWCEDBDoc)
	ON_COMMAND(ID_FILE_BASICTESTS, OnFileBasicTests)
	ON_COMMAND(ID_FILE_ENUM, OnFileEnum)
	ON_COMMAND(ID_FILE_SORTTEST, OnFileSortTest)
	ON_COMMAND(ID_FILE_SEEKTEST, OnFileSeekTest)
	ON_COMMAND(ID_FILE_DELETIONTEST, OnFileDeletionTest)
	ON_COMMAND(ID_FILE_MODIFYTEST, OnFileModifyTest)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CWCEDBDoc construction/destruction

CWCEDBDoc::CWCEDBDoc()
{
}

CWCEDBDoc::~CWCEDBDoc()
{
	if(CCeDBDatabase::Exists(DB_NAME_PEOPLE)) 
	{
		CCeDBDatabase db;
		db.Open(DB_NAME_PEOPLE);
		db.Delete();
	}
}

BOOL CWCEDBDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	return TRUE;
}


/////////////////////////////////////////////////////////////////////////////
// CWCEDBDoc serialization

void CWCEDBDoc::Serialize(CArchive& ar)
{
	if (ar.IsStoring())
	{
	}
	else
	{
	}
}

/////////////////////////////////////////////////////////////////////////////
// CWCEDBDoc diagnostics

#ifdef _DEBUG
void CWCEDBDoc::AssertValid() const
{
	CDocument::AssertValid();
}

void CWCEDBDoc::Dump(CDumpContext& dc) const
{
	CDocument::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CWCEDBDoc commands

// Need to figure out error values
#define FAIL_AND_EXIT { Output.Add(CString((LPCTSTR)IDS_FAILEXIT)),UpdateAllViews(NULL); return; }
#define FAIL Output.Add(CString((LPCTSTR)IDS_FAILED)),UpdateAllViews(NULL)
#define OK   Output.Add(CString((LPCTSTR)IDS_OK)),UpdateAllViews(NULL)
#define PRINT(what) Output.Add(CString((LPCTSTR)what)),UpdateAllViews(NULL)
#define PRINT_BLANK() Output.Add(_T("")),UpdateAllViews(NULL)
#define PRINT_WSTR(what) Output.Add(what),UpdateAllViews(NULL)
#define START {Output.RemoveAll(); \
			  POSITION pos = GetFirstViewPosition(); \
              GetNextView(pos)->SetScrollPos(SB_VERT,0);\
              UpdateAllViews(NULL); }


BOOL CWCEDBDoc::GeneratePeopleDB() 
{
#if (_WIN32_WCE <=211)
	PRINT(IDS_GENERATE_PEOPLE);
	PRINT(IDS_SORT_ORDER); 
#else // _WIN32_WCE
	PRINT(IDS_GENERATE_PEOPLE2);
	PRINT(IDS_SORT_ORDER2); 
#endif // _WIN32_WCE

	// Delete old database if existent
	if(CCeDBDatabase::Exists(DB_NAME_PEOPLE)) 
	{
		CCeDBDatabase db;
		db.Open(DB_NAME_PEOPLE);
		if(!db.Delete())
			return FALSE;
	}

	// Create database
	CCeDBDatabase db;
	CEOID poid;  
#if (_WIN32_WCE <= 211)
	CCeDBProp SortProps[3] = {
#else // _WIN32_WCE
	CCeDBProp SortProps[5] = {
#endif // _WIN32_WCE_PSPC
		CCeDBProp(CCeDBProp::Type_String, PROP_LASTNAME,
		           CCeDBProp::Sort_Ascending | CCeDBProp::Sort_CaseInsensitive),
		CCeDBProp(CCeDBProp::Type_UShort, PROP_AGE,      
		           CCeDBProp::Sort_Descending),
		CCeDBProp(CCeDBProp::Type_UShort, PROP_GENDER,
#if (_WIN32_WCE <= 211)		
		           CCeDBProp::Sort_UnknownFirst)
#else // _WIN32_WCE_PSPC
				   CCeDBProp::Sort_UnknownFirst),
		CCeDBProp(CCeDBProp::Type_Double, PROP_SALARY,   
		           CCeDBProp::Sort_Descending),
#endif // _WIN32_WCE				   
	};

#if (_WIN32_WCE <=211)
	if(!(poid = db.Create(DB_NAME_PEOPLE,DB_IDENT_PEOPLE,3,SortProps))) 
#else // _WIN32_WCE
	if(!(poid = db.Create(DB_NAME_PEOPLE,DB_IDENT_PEOPLE,4,SortProps))) 
#endif // _WIN32_WCE
		return FALSE;

	if(!db.Open(poid))
		return FALSE;

	// Add records
	CCeDBRecord rec;
#if (_WIN32_WCE <= 211)
	CCeDBProp props[4];
#else // _WIN32_WCE
	CCeDBProp props[6];
#endif // _WIN32_WCE

	CString str;

	str.LoadString(IDS_SMITH);
	props[0] = CCeDBProp((LPWSTR)(LPCTSTR)str,PROP_LASTNAME);
	str.LoadString(IDS_BOB);
	props[1] = CCeDBProp((LPWSTR)(LPCTSTR)str,  PROP_FIRSTNAME);
	props[2] = CCeDBProp((USHORT)34, PROP_AGE);
	props[3] = CCeDBProp((USHORT)'M',PROP_GENDER);
#if (_WIN32_WCE <= 211)
	rec.AddProps(props,4);
#else // _WIN32_WCE	
	props[4] = CCeDBProp((BOOL)1,PROP_MARRIED);
	props[5] = CCeDBProp((DOUBLE)20000.00,PROP_SALARY);
	rec.AddProps(props,6);
#endif // _WIN32_WCE
	if(!db.AddRecord(&rec))
		return FALSE;

	rec.DeleteAllProps();
	str.LoadString(IDS_SMITH);
	props[0] = CCeDBProp((LPWSTR)(LPCTSTR)str,PROP_LASTNAME);
	str.LoadString(IDS_MARY);
	props[1] = CCeDBProp((LPWSTR)(LPCTSTR)str, PROP_FIRSTNAME);
	props[2] = CCeDBProp((USHORT)22, PROP_AGE);
	props[3] = CCeDBProp((USHORT)'F',PROP_GENDER);
#if (_WIN32_WCE <= 211)
	rec.AddProps(props,4);
#else // _WIN32_WCE
	props[4] = CCeDBProp((BOOL)0,PROP_MARRIED);
	props[5] = CCeDBProp((DOUBLE)60000.00,PROP_SALARY);
	rec.AddProps(props,6);
#endif // _WIN32_WCE
	if(!db.AddRecord(&rec))
		return FALSE;

	rec.DeleteAllProps();
	str.LoadString(IDS_EMERSON);
	props[0] = CCeDBProp((LPWSTR)(LPCTSTR)str,PROP_LASTNAME);
	str.LoadString(IDS_RALPH);
	props[1] = CCeDBProp((LPWSTR)(LPCTSTR)str, PROP_FIRSTNAME);
	props[2] = CCeDBProp((USHORT)65, PROP_AGE);
	props[3] = CCeDBProp((USHORT)'M',PROP_GENDER);
#if (_WIN32_WCE <= 211)
	rec.AddProps(props,4);
#else // _WIN32_WCE
	props[4] = CCeDBProp((BOOL)0,PROP_MARRIED);
	props[5] = CCeDBProp((DOUBLE)40000.00,PROP_SALARY);
	rec.AddProps(props,6);
#endif // _WIN32_WCE
	if(!db.AddRecord(&rec))
		return FALSE;

	rec.DeleteAllProps();
	str.LoadString(IDS_CABANA);
	props[0] = CCeDBProp((LPWSTR)(LPCTSTR)str,PROP_LASTNAME);
	str.LoadString(IDS_ANNA);
	props[1] = CCeDBProp((LPWSTR)(LPCTSTR)str, PROP_FIRSTNAME);
	props[2] = CCeDBProp((USHORT)19, PROP_AGE);
	props[3] = CCeDBProp((USHORT)'F',PROP_GENDER);
#if (_WIN32_WCE <= 211)
	rec.AddProps(props,4);
#else // _WIN32_WCE
	props[4] = CCeDBProp((BOOL)1,PROP_MARRIED);
	props[5] = CCeDBProp((DOUBLE)80000.00,PROP_SALARY);
	rec.AddProps(props,6);
#endif // _WIN32_WCE
	if(!db.AddRecord(&rec))
		return FALSE;

	rec.DeleteAllProps();
	str.LoadString(IDS_ZIMMERMAN);
	props[0] = CCeDBProp((LPWSTR)(LPCTSTR)str,PROP_LASTNAME);
	str.LoadString(IDS_ZACH);
	props[1] = CCeDBProp((LPWSTR)(LPCTSTR)str, PROP_FIRSTNAME);
	props[2] = CCeDBProp((USHORT)25, PROP_AGE);
	props[3] = CCeDBProp((USHORT)'M',PROP_GENDER);
#if (_WIN32_WCE <= 211)
	rec.AddProps(props,4);
#else // _WIN32_WCE
	props[4] = CCeDBProp((BOOL)1,PROP_MARRIED);
	props[5] = CCeDBProp((DOUBLE)50000.00,PROP_SALARY);
	rec.AddProps(props,6);
#endif // _WIN32_WCE
	if(!db.AddRecord(&rec))
		return FALSE;

	// Write a partial record (an unknown gender)
	rec.DeleteAllProps();
	str.LoadString(IDS_EVANS);
	props[0] = CCeDBProp((LPWSTR)(LPCTSTR)str,PROP_LASTNAME);
	str.LoadString(IDS_PAT);
	props[1] = CCeDBProp((LPWSTR)(LPCTSTR)str, PROP_FIRSTNAME);
	props[2] = CCeDBProp((USHORT)41, PROP_AGE);
	props[3] = CCeDBProp((USHORT)'F',PROP_GENDER);
#if (_WIN32_WCE <= 211)
	rec.AddProps(props,4);
#else // _WIN32_WCE
	props[4] = CCeDBProp((BOOL)0,PROP_MARRIED);
	props[5] = CCeDBProp((DOUBLE)60000.00,PROP_SALARY);
	rec.AddProps(props,6);
#endif // _WIN32_WCE
	// We added the last prop so we can test deletion
	rec.DeleteProp(PROP_GENDER);
	if(!db.AddRecord(&rec))
		return FALSE;

	return TRUE;
}


BOOL CWCEDBDoc::PrintPeopleDB(CCeDBDatabase *pdb) 
{
	PRINT(IDS_PRINT_PEOPLE);

	CCeDBRecord rec;

	WCHAR szBuf[100];
	CString str;
	str.LoadString(IDS_NUM_RECORD);
	wsprintf(szBuf,(LPCTSTR)str,pdb->GetNumRecords());
	PRINT_WSTR(szBuf);

	BOOL bPrev = pdb->m_bAutoSeekNext;
	pdb->m_bAutoSeekNext = TRUE;
	pdb->SeekFirst();
	while(pdb->ReadCurrRecord(&rec))
		PrintPerson(&rec);
	pdb->m_bAutoSeekNext = bPrev;

	PRINT_BLANK();
	return TRUE;
}

void CWCEDBDoc::PrintIndex(CCeDBDatabase* pdb) 
{
	WCHAR szBuf[20];
	CString str;
	str.LoadString(IDS_CURRENT_RECORD);
	wsprintf(szBuf,(LPCTSTR)str,pdb->GetCurrIndex());
	PRINT_WSTR(szBuf);
}

void CWCEDBDoc::PrintPerson(CCeDBRecord* prec) 
{
#if (_WIN32_WCE <= 211)
	CCeDBProp *pPropLast,*pPropFirst,*pPropAge,*pPropGender;
#else // _WIN32_WCE
	CCeDBProp *pPropLast,*pPropFirst,*pPropAge,*pPropGender, *pPropMarried,
		      *pPropSalary;
#endif // _WIN32_WCE
	WCHAR szBuf[200];

	pPropLast    = prec->GetPropFromIdent(PROP_LASTNAME);
	pPropFirst   = prec->GetPropFromIdent(PROP_FIRSTNAME);
	pPropAge     = prec->GetPropFromIdent(PROP_AGE);
	pPropGender  = prec->GetPropFromIdent(PROP_GENDER);
#if !(_WIN32_WCE <= 211)
	pPropMarried = prec->GetPropFromIdent(PROP_MARRIED);
	pPropSalary  = prec->GetPropFromIdent(PROP_SALARY);
#endif // _WIN32_WCE

	CString str, str2;
#if (_WIN32_WCE <= 211)
	str.LoadString(IDS_AGE_GENDER);
#else // _WIN32_WCE
	str.LoadString(IDS_AGE_GENDER2);
#endif // _WIN32_WCE
	str2.LoadString(IDS_QUESTION);
	wsprintf(szBuf,(LPCTSTR)str,
		     pPropLast?     pPropLast->GetString()   : (LPCTSTR)str2,
			 pPropFirst?    pPropFirst->GetString()  : (LPCTSTR)str2,
			 pPropAge?      pPropAge->GetUShort()    : 999,
#if (_WIN32_WCE <= 211)
			 pPropGender?   pPropGender->GetUShort() : '?');
#else // _WIN32_WCE
			 pPropGender?   pPropGender->GetUShort() : '?',
			 pPropMarried? (pPropMarried->GetBool()? 'Y' : 'N') : '?',
			 pPropSalary?   pPropSalary->GetDouble() : '?' );
#endif // _WIN32_WCE
	PRINT_WSTR(szBuf);		
}


void CWCEDBDoc::OnFileClear() 
{
	Output.RemoveAll();
	UpdateAllViews(NULL);
	CCeDBProp DBassign;
}



void CWCEDBDoc::OnFileBasicTests()
{
	START;

	PRINT(IDS_BASIC_TEST);
	PRINT_BLANK();

	PRINT(IDS_CHECK_TEST);
	//if(!CCeDBDatabase::Exists(_T("Test Database")))
	CString str;
	str.LoadString(IDS_DATABASE);
	if(!CCeDBDatabase::Exists((LPCTSTR)str))
		FAIL;
	else
	{
		OK;
		PRINT(IDS_OPENIT);
		CCeDBDatabase temp;
		if(temp.Open((LPCTSTR)str))
			OK;
		else 
			FAIL_AND_EXIT;
		PRINT(IDS_DELETEIT);
		if(temp.Delete())
			OK;
		else
			FAIL_AND_EXIT;
	}

	PRINT(IDS_CREATING_TEST);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久99久久免费精品蜜臀| 欧美探花视频资源| 色8久久精品久久久久久蜜| 欧美喷水一区二区| 国产精品国产精品国产专区不片| 亚洲午夜免费福利视频| 国产91精品在线观看| 日韩免费高清av| 亚洲一级在线观看| 粗大黑人巨茎大战欧美成人| 日韩欧美www| 日本不卡中文字幕| 色网综合在线观看| 中文字幕第一区二区| 国产资源精品在线观看| 在线播放视频一区| 五月开心婷婷久久| 色噜噜狠狠色综合中国| 亚洲成人免费影院| 一本一道久久a久久精品| 国产精品欧美综合在线| 久久精品国产亚洲一区二区三区 | 中文字幕一区日韩精品欧美| 久久精品国内一区二区三区| 欧美日韩免费在线视频| 亚洲精选视频免费看| 色综合久久久网| 中文字幕在线不卡一区二区三区 | 琪琪久久久久日韩精品| 欧美三级电影网站| 亚洲电影一区二区三区| 欧美伊人久久大香线蕉综合69| 中文字幕在线观看一区| 不卡av在线免费观看| 国产精品免费观看视频| caoporen国产精品视频| 国产精品久久久久影院亚瑟| jizzjizzjizz欧美| 国产精品福利一区二区| 99精品国产热久久91蜜凸| 国产精品久久二区二区| 99精品视频在线播放观看| 一区二区三区在线影院| 91看片淫黄大片一级在线观看| 亚洲激情网站免费观看| 日本久久电影网| 性感美女极品91精品| 制服丝袜亚洲精品中文字幕| 久久精品av麻豆的观看方式| 亚洲欧美一区二区三区国产精品| 99re这里只有精品首页| 亚洲最新视频在线观看| 91精品国产一区二区| 久99久精品视频免费观看| 精品99一区二区| 91在线一区二区| 亚洲二区在线视频| 久久综合九色综合欧美就去吻| 精品一区二区三区香蕉蜜桃| 久久精品人人做人人爽97| 99精品国产99久久久久久白柏| 亚洲国产日韩一级| 精品国产免费人成电影在线观看四季 | 国产欧美精品一区二区三区四区| 成人午夜看片网址| 亚洲国产成人porn| 欧美精品一区二区三区久久久 | 精品sm在线观看| 成人综合婷婷国产精品久久免费| 亚洲精品视频在线| 精品久久免费看| 日本久久电影网| 久久av资源网| 一区二区三区小说| 久久精品免视看| 欧美色图片你懂的| 豆国产96在线|亚洲| 亚洲在线观看免费| 中文子幕无线码一区tr| 欧美美女直播网站| 成人性视频网站| 久久se精品一区精品二区| 洋洋av久久久久久久一区| 久久一夜天堂av一区二区三区| 色欧美片视频在线观看在线视频| 久久99久国产精品黄毛片色诱| 樱花影视一区二区| 欧美国产精品专区| 日韩欧美国产小视频| 日本韩国欧美一区| 高清视频一区二区| 久久99久久99小草精品免视看| 一区二区三区欧美激情| 成人免费小视频| 337p粉嫩大胆色噜噜噜噜亚洲 | 亚洲高清免费一级二级三级| 国产欧美一区在线| 精品国产乱码久久| 6080yy午夜一二三区久久| 一本一道波多野结衣一区二区| 国内成人精品2018免费看| 日本在线不卡一区| 亚洲国产三级在线| 亚洲在线中文字幕| 一区二区三区中文字幕在线观看| 国产亚洲成年网址在线观看| 精品欧美久久久| 91精品在线麻豆| 在线观看91av| 欧美日韩欧美一区二区| 欧美视频一区二区| 欧美亚洲一区二区三区四区| 91亚洲男人天堂| 91麻豆高清视频| 91麻豆精品在线观看| 波多野结衣91| 一本一道久久a久久精品综合蜜臀| 国产suv精品一区二区6| 丁香六月综合激情| 成人av电影在线观看| 成人黄色a**站在线观看| 99久久久久久| 色一情一伦一子一伦一区| 91久久香蕉国产日韩欧美9色| 91麻豆.com| 欧美日韩在线播放一区| 欧美绝品在线观看成人午夜影视| 91精品一区二区三区在线观看| 欧美一卡2卡3卡4卡| 日韩欧美久久一区| 国产偷国产偷精品高清尤物| 国产蜜臀av在线一区二区三区| 国产午夜精品久久久久久免费视 | 日韩欧美在线一区二区三区| 欧美mv日韩mv| 欧美—级在线免费片| 亚洲丝袜自拍清纯另类| 亚洲综合免费观看高清在线观看| 午夜伊人狠狠久久| 看片网站欧美日韩| 成人听书哪个软件好| 91免费看视频| 91精品久久久久久久91蜜桃| 国产精品热久久久久夜色精品三区 | 国产精品亚洲一区二区三区妖精| 成人综合婷婷国产精品久久蜜臀| 色天天综合色天天久久| 欧美日韩在线播| 精品国产一区二区在线观看| 国产午夜精品美女毛片视频| 一区二区三区鲁丝不卡| 美女视频网站久久| 99视频在线精品| 69堂精品视频| 中文在线资源观看网站视频免费不卡 | 老司机精品视频线观看86| 国产成人aaaa| 欧美二区在线观看| 国产欧美日韩三级| 免费在线看成人av| 91影院在线观看| 日韩女优毛片在线| 亚洲色图在线播放| 久久不见久久见免费视频7| 91在线视频观看| 精品精品国产高清一毛片一天堂| 日韩美女视频一区二区 | 国产电影精品久久禁18| 91成人看片片| 国产精品麻豆视频| 精品亚洲免费视频| 欧美日韩国产a| 日韩美女视频一区二区| 国产一区啦啦啦在线观看| 欧美女孩性生活视频| 亚洲丝袜制服诱惑| 九色综合狠狠综合久久| 欧美日韩三级视频| 一区二区日韩av| 成人午夜在线播放| ww亚洲ww在线观看国产| 日韩和欧美一区二区三区| 日本韩国一区二区三区视频| 国产精品视频一区二区三区不卡| 日本vs亚洲vs韩国一区三区二区| 91亚洲精品久久久蜜桃| 国产精品区一区二区三区| 激情六月婷婷久久| 欧美一区二区三区电影| 亚洲国产日产av| 91香蕉视频黄| 国产精品高潮呻吟| jiyouzz国产精品久久| 国产色产综合色产在线视频| 国产一区二区三区在线观看免费| 欧美乱熟臀69xxxxxx| 亚洲一二三四久久| 欧美性感一类影片在线播放| 久久久久久久久久久久久久久99 | 亚洲成人福利片|