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

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

?? employees.cpp

?? EVC下OLEDB方法編寫的數(shù)據(jù)庫(kù)源代碼
?? CPP
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
////////////////////////////////////////////////////////////////////////////////
// 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);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色吊一区二区三区| 日韩视频免费直播| 91丨porny丨国产| 在线免费观看一区| 亚洲午夜久久久久久久久电影院| 亚洲一区二区三区四区在线| 久久国产精品露脸对白| 粉嫩久久99精品久久久久久夜| 99re这里只有精品视频首页| 欧美日韩国产一二三| 久久久99精品免费观看| 亚洲电影一级黄| 成人黄色网址在线观看| 日韩亚洲电影在线| 亚洲主播在线播放| 国产福利一区在线观看| 欧美日韩在线精品一区二区三区激情 | 欧美丰满嫩嫩电影| 亚洲国产精品成人综合| 日韩有码一区二区三区| 久久日韩粉嫩一区二区三区| 综合久久久久综合| 久久精品72免费观看| 蜜乳av一区二区三区| 成人免费精品视频| 日韩精品一区二区三区四区| 国产精品福利一区| 国内久久婷婷综合| 欧美丝袜丝交足nylons图片| 国产亚洲精品久| 日本欧美肥老太交大片| 欧美日韩一区二区三区四区| 久久久www免费人成精品| 天天影视色香欲综合网老头| 日本久久一区二区| 久久亚洲捆绑美女| 免费欧美在线视频| 在线播放欧美女士性生活| 亚洲一二三四区不卡| 国产一区视频网站| 在线观看视频一区二区| 国产三级一区二区三区| 韩国中文字幕2020精品| 日韩欧美你懂的| 亚洲成人免费观看| 欧美视频中文字幕| 亚洲国产视频在线| 欧美色图天堂网| 一区二区三区四区在线| 色婷婷一区二区| 亚洲福利国产精品| 欧美日韩国产精品自在自线| 午夜精品免费在线| 91精品一区二区三区在线观看| 亚洲大型综合色站| 91国偷自产一区二区使用方法| 亚洲国产综合人成综合网站| 欧美日本在线播放| 日韩黄色一级片| 欧美一区二区三区系列电影| 全国精品久久少妇| 久久久久久久久久久久久久久99 | 成人免费毛片aaaaa**| 亚洲麻豆国产自偷在线| 一本高清dvd不卡在线观看| 一区二区三区国产精品| 91精品欧美福利在线观看| av福利精品导航| 亚洲三级电影网站| 91首页免费视频| 亚洲黄色录像片| 欧美电影免费提供在线观看| eeuss鲁片一区二区三区| 亚洲综合男人的天堂| 欧美一区二区三区免费在线看| 狠狠色狠狠色综合| 国产精品美女久久久久久久久| 色婷婷国产精品综合在线观看| 亚洲综合免费观看高清完整版 | 亚洲午夜在线视频| 国产亚洲精品7777| 在线一区二区视频| 狠狠色丁香久久婷婷综合_中| 中文字幕亚洲欧美在线不卡| 欧美精品 国产精品| jiyouzz国产精品久久| 秋霞电影网一区二区| 亚洲三级在线播放| 国产日韩欧美精品一区| 欧美亚洲愉拍一区二区| 成人免费视频播放| 国产电影一区二区三区| 精品一区二区三区在线视频| 亚洲va中文字幕| 亚洲一区视频在线| 最新热久久免费视频| 国产日韩欧美综合一区| 久久色视频免费观看| 日韩午夜激情视频| 色久综合一二码| 99久久精品免费看| 99久久国产综合精品麻豆| 成人黄色国产精品网站大全在线免费观看| 五月婷婷激情综合网| 亚洲成人你懂的| 亚洲第一福利视频在线| 亚洲国产欧美一区二区三区丁香婷| 精品国产人成亚洲区| 日韩一级成人av| 日韩欧美精品三级| 欧美成人一级视频| 欧美精品日韩一本| 欧美一区二区精品久久911| 911精品产国品一二三产区| 91精品婷婷国产综合久久竹菊| 欧美丰满美乳xxx高潮www| 日韩欧美中文一区| 26uuu成人网一区二区三区| 国产日产欧美精品一区二区三区| 欧美高清在线一区| 夜夜爽夜夜爽精品视频| 一区二区三区不卡视频在线观看| 欧美国产1区2区| 亚洲欧洲在线观看av| 午夜电影一区二区三区| 九九国产精品视频| 国产日韩精品一区二区三区在线| 成人免费一区二区三区在线观看| 伊人色综合久久天天人手人婷| 日韩不卡免费视频| 国产成a人无v码亚洲福利| 欧美日韩一区二区在线观看| 精品国产不卡一区二区三区| 18成人在线视频| 视频一区二区三区中文字幕| 美腿丝袜亚洲综合| 91美女精品福利| 久久久精品国产99久久精品芒果| 亚洲另类春色国产| 国产一区二区三区久久久 | 欧美日韩一区不卡| 国产精品色婷婷久久58| 日本午夜一本久久久综合| 国产成人在线影院| 欧美亚洲国产一区在线观看网站 | 中日韩av电影| 极品美女销魂一区二区三区免费| 91麻豆国产自产在线观看| 国产偷v国产偷v亚洲高清| 玖玖九九国产精品| 欧美肥大bbwbbw高潮| 国产精品美女久久久久久2018 | 国产精品传媒入口麻豆| 国产一区二区三区四区五区入口 | 日韩电影在线看| 在线视频国内一区二区| 亚洲欧美自拍偷拍| 国产1区2区3区精品美女| 精品久久免费看| 美日韩一级片在线观看| 91精品国产欧美一区二区成人| 亚洲不卡一区二区三区| 欧美视频一区二区三区四区| 亚洲小说欧美激情另类| 成人app网站| 亚洲男人的天堂在线aⅴ视频| 日本黄色一区二区| 亚洲电影在线播放| 日韩一区二区在线看| 日精品一区二区| 日韩精品一区二区三区老鸭窝| 久久99最新地址| 国产欧美一区二区在线| 国产麻豆成人精品| 国产亚洲综合在线| 97精品久久久午夜一区二区三区| 亚洲精品老司机| 日韩欧美亚洲国产另类| 国产一区二区免费视频| 精品国产乱码久久久久久免费| 国产乱码精品1区2区3区| 亚洲欧美一区二区三区孕妇| 欧美肥妇bbw| 99国产欧美另类久久久精品| 日韩影院在线观看| 国产精品区一区二区三区| 欧美日韩一区在线观看| 国产丶欧美丶日本不卡视频| 亚洲综合在线免费观看| 久久精品一二三| 欧美日韩国产高清一区二区三区| 日韩精品成人一区二区三区| 久久久久九九视频| 色婷婷av一区二区三区软件| 韩国精品一区二区| 亚洲一二三专区| 国产精品天天看| 久久精品在这里| 欧美一区二区三区在| eeuss鲁片一区二区三区|