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

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

?? employees.cpp

?? EVC下OLEDB方法編寫的數據庫源代碼
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
////////////////////////////////////////////////////////////////////////////////
// Microsoft SQL Server for CE Sample Code
//
// Microsoft Confidential
//
// Copyright 1999 - 2002 Microsoft Corporation.  All Rights Reserved.
//
// Component: Employees
//
// File: Employees.cpp
//
// Comment: Implementation of the Employees class.
// 
// Functions:
//			1. Create Northwind sample database
//			2. Create Employees table
//			3. Open a connection to Northwind database
//			4. Insert employee sample data using OLE DB API
//			5. Update employee info using OLE DB API
//			6. Queries through ICommandText
//			7. IRowsetIndex seek
//			8. Insert BLOB to database using ISequentialStream 
//			9. Load BLOB from database using ILockBytes
//			10. Wrap employee data insertions in a transaction
//
////////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Employees.h"
#include "dbcommon.h"

////////////////////////////////////////////////////////////////////////////////
// Declaration of function to handle messages for the employees dialog box
//
LRESULT CALLBACK EmployeesDlgProc(HWND, UINT, WPARAM, LPARAM);

////////////////////////////////////////////////////////////////////////////////
// Function: Employees::Employees()
//
// Description: Constructor
//
// Returns: none
//
// Notes:
//
////////////////////////////////////////////////////////////////////////////////
Employees::Employees(BOOL *pSuccess) : m_hWndEmployees(NULL), 
                                       m_hInstance(NULL),
                                       m_pIDBCreateSession(NULL),
                                       m_hBitmap(NULL)
{
	HRESULT hr = NOERROR;

	// Initialize environment
	//
	hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
	if(FAILED(hr))
	{
         if (pSuccess)
         {
            *pSuccess = FALSE;
         }

		 MessageBox(NULL, L"COM Initialization Failure.", L"Employees", MB_OK);
         return;
	}

    if (pSuccess)
    {
        *pSuccess = TRUE;
    }
}

////////////////////////////////////////////////////////////////////////////////
// Function: Employees::~Employees()
//
// Description: Destructor
//
// Returns: none
//
// Notes:
//
////////////////////////////////////////////////////////////////////////////////
Employees::~Employees()
{
	// Release interfaces
	//
	if(m_pIDBCreateSession)
	{
        HRESULT        hr = NOERROR;
        IDBInitialize *pIDBInitialize = NULL;

	    hr = m_pIDBCreateSession->QueryInterface(IID_IDBInitialize, (void **) &pIDBInitialize);
	    if(SUCCEEDED(hr))
	    {
            pIDBInitialize->Uninitialize();
            pIDBInitialize->Release();
        }
        
		m_pIDBCreateSession->Release();
	}

	if (m_hWndEmployees)
	{
       DestroyWindow(m_hWndEmployees);
  	}

	// Uninitialize the environment
	CoUninitialize();
}

////////////////////////////////////////////////////////////////////////////////
// Function: Create
//
// Description: Create a dialog to display employee info
//
// Returns: The handle to the window
//
// Notes:
//
////////////////////////////////////////////////////////////////////////////////
HWND Employees::Create(HWND hWndParent, HINSTANCE hInstance)
{
	HRESULT hr = NOERROR;
	RECT	rect;
	DWORD	dwCurSel;
	DWORD	dwEmployeeID;

	m_hInstance = hInstance;

	// Create the dialog window
	//
	GetClientRect(hWndParent, &rect);
	m_hWndEmployees = CreateDialog(	hInstance, 
									MAKEINTRESOURCE(IDD_DIALOG_EMPLOYEES), 
									hWndParent, 
									(DLGPROC)EmployeesDlgProc); 

    if (NULL == m_hWndEmployees)
    {
		MessageBox(NULL, L"Error - Create dialog", L"Northwind Oledb sample", MB_OK);
		return NULL;
    }

	// Open a connection to database and create a session object.
	//
	hr = InitDatabase();
	if (FAILED(hr))
	{
		MessageBox(NULL, L"Error - Initialize database", L"Northwind Oledb sample", MB_OK);
		return NULL;
	}

	// Populate combobox with employee name list.
	//
	hr = PopulateEmployeeNameList();
	if (FAILED(hr))
	{	
		MessageBox(NULL, L"Error - Retrive employee name list", L"Northwind Oledb sample", MB_OK);
		return NULL;
	}

	// Display the dialog window and center it under the commandbar
	//
	if (m_hWndEmployees)
	{
		MoveWindow(m_hWndEmployees, rect.left, rect.top, rect.right-rect.left,rect.bottom-rect.top, TRUE);
		ShowWindow(m_hWndEmployees, SW_SHOW);
		UpdateWindow(m_hWndEmployees);
	}

	// Set current selection of employee name combobox to index 0,
	//
	dwCurSel = SendDlgItemMessage(m_hWndEmployees, IDC_COMBO_NAME, CB_SETCURSEL, 0, 0);
	if (CB_ERR != dwCurSel)
	{
		// Retrieve current selected employee id from employee name combobox,
		// and load other employee info.
		//
		dwEmployeeID = SendDlgItemMessage(m_hWndEmployees, IDC_COMBO_NAME, CB_GETITEMDATA, dwCurSel, 0);
		hr = LoadEmployeeInfo(dwEmployeeID);
		if (FAILED(hr))
		{
			MessageBox(NULL, L"Error - Update employee info", L"Northwind Oledb sample", MB_OK);
			return NULL;
		}
		ShowEmployeePhoto();
	}

	return m_hWndEmployees;
}

////////////////////////////////////////////////////////////////////////////////
// Function: InitDatabase()
//
// Description: Open a connection to database, 
//				then create a session object.
//
// Returns: NOERROR if succesfull
//
// Notes:
//
////////////////////////////////////////////////////////////////////////////////
HRESULT Employees::InitDatabase()
{
    HRESULT			   	hr				= NOERROR;	// Error code reporting
	HANDLE				hFind;							// File handle
	WIN32_FIND_DATA		FindFileData;					// The file structure description  

	// If database exists, open it,
	// Otherwise, create a new database, insert sample data.
	//
	hFind = FindFirstFile(DATABASE_NORTHWIND, &FindFileData);
	if (INVALID_HANDLE_VALUE != hFind)
	{
		FindClose(hFind);
		hr = OpenDatabase();
	}
	else
	{
		// Create Northwind database
		//
		hr = CreateDatabase();
		if(SUCCEEDED(hr))
		{
			// Insert sample data
			//
			hr = InsertEmployeeInfo();
		}
	}

	return hr;
}

////////////////////////////////////////////////////////////////////////////////
// Function: CreateDatabase
//
// Description:
//		Create Northwind Database through OLE DB
//		Create Employees table
//
// Returns: NOERROR if succesfull
//
////////////////////////////////////////////////////////////////////////////////
HRESULT Employees::CreateDatabase()
{
	HRESULT				hr					 = NOERROR;	// Error code reporting
	DBPROPSET			dbpropset[1];					// Property Set used to initialize provider
	DBPROP				dbprop[1];						// property array used in property set to initialize provider

	IDBInitialize	    *pIDBInitialize      = NULL;    // Provider Interface Pointer
	IDBDataSourceAdmin	*pIDBDataSourceAdmin = NULL;	// Provider Interface Pointer
	IUnknown			*pIUnknownSession	 = NULL;	// Provider Interface Pointer
	IDBCreateCommand	*pIDBCrtCmd			 = NULL;	// Provider Interface Pointer
	ICommandText		*pICmdText			 = NULL;	// Provider Interface Pointer

	VariantInit(&dbprop[0].vValue);

	// Delete the DB if it already exists
	//
	DeleteFile(DATABASE_NORTHWIND);

   	// Create an instance of the OLE DB Provider
	//
	hr = CoCreateInstance(	CLSID_SQLSERVERCE_2_0, 
							0, 
							CLSCTX_INPROC_SERVER, 
							IID_IDBInitialize, 
							(void**)&pIDBInitialize);
	if(FAILED(hr))
	{
		goto Exit;
	}

	// Initialize a property with name of database
	//
	dbprop[0].dwPropertyID		= DBPROP_INIT_DATASOURCE;
	dbprop[0].dwOptions			= DBPROPOPTIONS_REQUIRED;
	dbprop[0].vValue.vt			= VT_BSTR;
	dbprop[0].vValue.bstrVal	= SysAllocString(DATABASE_NORTHWIND);
	if(NULL == dbprop[0].vValue.bstrVal)
	{
		hr = E_OUTOFMEMORY;
		goto Exit;
	}

	// Initialize the property set
	//
	dbpropset[0].guidPropertySet = DBPROPSET_DBINIT;
	dbpropset[0].rgProperties	 = dbprop;
	dbpropset[0].cProperties	 = sizeof(dbprop)/sizeof(dbprop[0]);

	// Get IDBDataSourceAdmin interface
	//
	hr = pIDBInitialize->QueryInterface(IID_IDBDataSourceAdmin, (void **) &pIDBDataSourceAdmin);
	if(FAILED(hr))
	{
		goto Exit;
	}

	// Create and initialize data store
	//
	hr = pIDBDataSourceAdmin->CreateDataSource(1, dbpropset, NULL, IID_IUnknown, &pIUnknownSession);
	if(FAILED(hr))	
    {
		goto Exit;
    }

    // Get IDBCreateSession interface
    //
  	hr = pIDBInitialize->QueryInterface(IID_IDBCreateSession, (void**)&m_pIDBCreateSession);
	if(FAILED(hr))
	{
		goto Exit;
	}

	// Get IDBCreateCommand interface
	//
	hr = pIUnknownSession->QueryInterface(IID_IDBCreateCommand, (void**)&pIDBCrtCmd);
	if(FAILED(hr))
	{
		goto Exit;
	}

	// Create a command object
	//
	hr = pIDBCrtCmd->CreateCommand(NULL, IID_ICommandText, (IUnknown**)&pICmdText);
	if(FAILED(hr))
	{
		goto Exit;
	}

	// Drop "Employees" table if it exists ignoring errors
	//
	ExecuteSQL(pICmdText, (LPWSTR)SQL_DROP_EMPLOYEES);

	// Create Employees table
	//
	hr = ExecuteSQL(pICmdText, (LPWSTR)SQL_CREATE_EMPLOYEES_TABLE);
	if(FAILED(hr))
	{
		goto Exit;
	}

	// Create Index
	// Note: The sample table has small amount of demo data, the index is created here.
	// In your application, to improve performance, index shoule be created after 
	// inserting initial data. 
	//
	hr = ExecuteSQL(pICmdText, (LPWSTR)SQL_CREATE_EMPLOYEES_INDEX);
	if(FAILED(hr))
	{
		goto Exit;
	}


Exit:
    // Clear Variant
    //
	VariantClear(&dbprop[0].vValue);

	// Release interfaces
	//
	if(pICmdText)
	{
		pICmdText->Release();
	}

	if(pIDBCrtCmd)
	{
		pIDBCrtCmd->Release();
	}

	if(pIUnknownSession)
	{
		pIUnknownSession->Release();
	}

	if(pIDBDataSourceAdmin)
	{
		pIDBDataSourceAdmin->Release();
	}

	if(pIDBInitialize)
	{
		pIDBInitialize->Release();
	}

	return hr;
}

////////////////////////////////////////////////////////////////////////////////
// Function: OpenDatabase
//
// Description:	Open a connection to database
//
// Returns: NOERROR if succesfull
//
////////////////////////////////////////////////////////////////////////////////
HRESULT Employees::OpenDatabase()
{
    HRESULT			   	hr				= NOERROR;	// Error code reporting
	DBPROP				dbprop[1];					// property used in property set to initialize provider
	DBPROPSET			dbpropset[1];				// Property Set used to initialize provider

    IDBInitialize       *pIDBInitialize = NULL;		// Provider Interface Pointer
	IDBProperties       *pIDBProperties	= NULL;		// Provider Interface Pointer

	VariantInit(&dbprop[0].vValue);		

    // Create an instance of the OLE DB Provider
	//
	hr = CoCreateInstance(	CLSID_SQLSERVERCE_2_0, 
							0, 
							CLSCTX_INPROC_SERVER, 
							IID_IDBInitialize, 
							(void**)&pIDBInitialize);
	if(FAILED(hr))
	{
		goto Exit;
	}

	// Initialize a property with name of database
	//
    dbprop[0].dwPropertyID	= DBPROP_INIT_DATASOURCE;
	dbprop[0].dwOptions		= DBPROPOPTIONS_REQUIRED;
    dbprop[0].vValue.vt		= VT_BSTR;
    dbprop[0].vValue.bstrVal= SysAllocString(DATABASE_NORTHWIND);
	if(NULL == dbprop[0].vValue.bstrVal)
	{
		hr = E_OUTOFMEMORY;
		goto Exit;
	}

	// Initialize the property set
	//
	dbpropset[0].guidPropertySet = DBPROPSET_DBINIT;
	dbpropset[0].rgProperties	 = dbprop;
	dbpropset[0].cProperties	 = sizeof(dbprop)/sizeof(dbprop[0]);

	//Set initialization properties.
	//
	hr = pIDBInitialize->QueryInterface(IID_IDBProperties, (void **)&pIDBProperties);
    if(FAILED(hr))
    {
		goto Exit;
    }

	// Sets properties in the Data Source and initialization property groups
	//
    hr = pIDBProperties->SetProperties(1, dbpropset); 
	if(FAILED(hr))
    {
		goto Exit;
    }

	// Initializes a data source object 
	//
	hr = pIDBInitialize->Initialize();
	if(FAILED(hr))
    {
		goto Exit;
    }

    // Get IDBCreateSession interface
    //
  	hr = pIDBInitialize->QueryInterface(IID_IDBCreateSession, (void**)&m_pIDBCreateSession);

Exit:
    // Clear Variant
    //
	VariantClear(&dbprop[0].vValue);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
极品少妇xxxx偷拍精品少妇| 91久久人澡人人添人人爽欧美 | 成人高清视频在线| 国产91精品精华液一区二区三区 | 国产精品麻豆久久久| 日韩一区中文字幕| 亚洲成av人**亚洲成av**| 精品一区二区三区在线观看国产| 成人性生交大片免费| 欧美综合欧美视频| 精品av综合导航| 亚洲人午夜精品天堂一二香蕉| 日韩精品亚洲一区二区三区免费| 国产麻豆精品久久一二三| 在线观看免费一区| 久久综合视频网| 亚洲综合免费观看高清在线观看| 另类小说视频一区二区| av在线一区二区| 欧美日韩电影在线播放| 国产日产亚洲精品系列| 亚洲成人精品在线观看| 国产成人在线色| 欧美精品乱码久久久久久按摩 | 国产精品亚洲一区二区三区妖精 | 一区二区免费看| 久草在线在线精品观看| 91免费在线播放| 精品美女一区二区| 亚洲国产wwwccc36天堂| 成人天堂资源www在线| 91精品国产色综合久久ai换脸| 中文字幕制服丝袜成人av| 精品综合久久久久久8888| 91精品办公室少妇高潮对白| 日韩欧美一级精品久久| 依依成人综合视频| 成人视屏免费看| 日韩欧美一级精品久久| 性久久久久久久| 97国产一区二区| 国产欧美一区视频| 久久国产人妖系列| 欧美日韩中字一区| 成人免费在线观看入口| 国产精品99久| 欧美va亚洲va| 亚洲成在人线在线播放| 色狠狠色噜噜噜综合网| 国产精品免费看片| 国产揄拍国内精品对白| 欧美一个色资源| 亚洲一卡二卡三卡四卡五卡| 欧美精品tushy高清| 亚洲日本青草视频在线怡红院| 国产成人一区二区精品非洲| 精品久久久网站| 青青草伊人久久| 9191久久久久久久久久久| 一区二区三区影院| 成人综合婷婷国产精品久久蜜臀| 精品处破学生在线二十三| 免费人成精品欧美精品 | 日本美女一区二区三区视频| 91极品美女在线| 亚洲欧美日韩国产成人精品影院| 99久久夜色精品国产网站| 国产午夜亚洲精品理论片色戒 | 久久精品一区二区三区四区| 久久成人18免费观看| 欧美一区二区三区喷汁尤物| 亚洲一区二区黄色| 欧美亚洲一区三区| 午夜精品福利一区二区三区蜜桃| 欧美亚洲图片小说| 亚洲va韩国va欧美va| 欧美日韩一区二区三区不卡| 亚洲成人av中文| 欧美日韩成人激情| 图片区小说区区亚洲影院| 欧美精品一级二级| 日韩国产高清在线| 精品少妇一区二区三区| 国产在线一区二区| 久久伊99综合婷婷久久伊| 国产一区在线精品| 国产欧美日韩亚州综合| 成人网男人的天堂| 中文字幕字幕中文在线中不卡视频| 97se亚洲国产综合自在线| 亚洲精品久久久蜜桃| 欧美视频在线播放| 日本午夜精品视频在线观看 | 成人av在线一区二区三区| 国产精品免费视频一区| 色哟哟精品一区| 亚洲国产aⅴ天堂久久| 日韩视频在线永久播放| 国产一区二区精品久久99| 久久精品欧美日韩| 91影视在线播放| 亚洲在线中文字幕| 精品日韩一区二区三区| 丁香婷婷综合色啪| 亚洲精品日日夜夜| 欧美一区二区三区视频免费| 韩国成人福利片在线播放| 国产精品高潮呻吟| 欧美色涩在线第一页| 美女一区二区久久| 国产农村妇女精品| 成人18视频在线播放| 亚洲国产婷婷综合在线精品| 欧美tk—视频vk| 91在线视频网址| 天天操天天综合网| 久久蜜桃av一区二区天堂| 91免费版在线看| 免费在线观看视频一区| 中文字幕亚洲在| 91麻豆精品国产自产在线| 国产98色在线|日韩| 夜夜揉揉日日人人青青一国产精品| 欧美大片一区二区三区| 久久久久久免费网| 在线看国产一区| 黄色小说综合网站| 亚洲一区在线电影| 久久久夜色精品亚洲| 欧美无砖专区一中文字| 国产高清不卡一区| 日韩福利电影在线| 国产精品毛片a∨一区二区三区| 9191精品国产综合久久久久久| 国产精选一区二区三区| 天天综合日日夜夜精品| 国产精品成人免费| 日韩欧美精品在线| 在线观看成人小视频| 国产成人8x视频一区二区| 五月婷婷激情综合网| 国产精品天美传媒沈樵| 欧美一级xxx| 欧美性猛交xxxx黑人交| 成人动漫一区二区在线| 韩国毛片一区二区三区| 亚洲va欧美va人人爽| 亚洲日本一区二区| 国产欧美日韩激情| 日韩一区二区三区视频在线| 色婷婷精品大在线视频| 国产毛片精品视频| 天天综合色天天综合| 一级日本不卡的影视| 亚洲国产成人午夜在线一区| 欧美一区中文字幕| 日本二三区不卡| 91在线免费视频观看| 懂色一区二区三区免费观看| 国产在线不卡一卡二卡三卡四卡| 日韩二区三区在线观看| 亚洲线精品一区二区三区| 亚洲精品免费在线播放| 国产精品美女久久久久高潮| 国产亚洲人成网站| 2024国产精品| 精品国精品国产尤物美女| 日韩一级黄色片| 欧美美女直播网站| 91精品福利在线| 色婷婷香蕉在线一区二区| 99视频一区二区三区| 岛国一区二区在线观看| 国产成人精品在线看| 国产做a爰片久久毛片| 久久精品国产99| 久久er99精品| 狠狠色丁香婷婷综合| 国产在线日韩欧美| 久色婷婷小香蕉久久| 久久99精品国产.久久久久 | 精品国产免费人成电影在线观看四季 | 一本久久a久久精品亚洲| 成人av网址在线观看| 成人动漫一区二区| 丁香激情综合五月| a亚洲天堂av| 暴力调教一区二区三区| 91麻豆国产在线观看| 日本高清不卡aⅴ免费网站| 在线免费视频一区二区| 欧美日韩一区二区三区免费看 | 午夜一区二区三区视频| 国产成人精品免费在线| 成人综合婷婷国产精品久久免费| 成人一级片在线观看| 99国产精品久久久| 欧美在线制服丝袜| 欧美喷潮久久久xxxxx| 日韩亚洲欧美综合|