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

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

?? database.cpp

?? wince下對sqlserver數據庫的操作,增刪改操作,單進程單線程
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
// DataBase.cpp: implementation of the CDataBase class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
//#include "ccdb.h"
#include "BusDef.h"
#include "DataBase.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

extern void writebuginfo(const char* lpszFormat, ...);



CDataBase::CDataBase()
{
	m_pIDBCreateSession=NULL;
	m_bOpen=FALSE;

}

CDataBase::~CDataBase()
{
	if(m_bOpen)
		CloseData();

}
/*
功能:打開數據庫
參數:無
返回:BOOL 
	TRUE --成功
	FALSE --失敗
編寫人:呂黃梁
時間:2004-12-23
*/
BOOL CDataBase::OpenData(const WCHAR *wpDbfile)
{
	if(m_bOpen)
		return TRUE;
    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


	// Initialize environment
	//
/*	hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);

	if(FAILED(hr))
	{ 
		return FALSE;
	}
*/
	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))
	{
		writebuginfo("file:%s,line:%d\r\n",__FILE__,__LINE__);
		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;
	if(wpDbfile ==NULL)
    dbprop[0].vValue.bstrVal= SysAllocString(DATABASE_PMDB);
	else
    dbprop[0].vValue.bstrVal= SysAllocString(wpDbfile);
	if(NULL == dbprop[0].vValue.bstrVal)
	{
		hr = E_OUTOFMEMORY;
		writebuginfo("file:%s,line:%d\r\n",__FILE__,__LINE__);
		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))
    {
		writebuginfo("file:%s,line:%d\r\n",__FILE__,__LINE__);
		goto Exit;
    }

	// Sets properties in the Data Source and initialization property groups
	//
    hr = pIDBProperties->SetProperties(1, dbpropset); 
	if(FAILED(hr))
    {
		writebuginfo("file:%s,line:%d\r\n",__FILE__,__LINE__);
		goto Exit;
    }

	// Initializes a data source object 
	//
	hr = pIDBInitialize->Initialize();
	if(FAILED(hr))
    {
		writebuginfo("file:%s,line:%d\r\n",__FILE__,__LINE__);
		goto Exit;
    }

    // Get IDBCreateSession interface
    //
  	hr = pIDBInitialize->QueryInterface(IID_IDBCreateSession, (void**)&m_pIDBCreateSession);
	if(FAILED(hr))
    {
		writebuginfo("file:%s,line:%d\r\n",__FILE__,__LINE__);
		goto Exit;
    }
//.........


// Specify the command text using parameter markers in the query syntax.
// We know that this command will return 1 row and one image column (Photo).


Exit:
    // Clear Variant
    //
	VariantClear(&dbprop[0].vValue);
	
	// Release interfaces
	//
	if(pIDBProperties)
	{
		pIDBProperties->Release();
	}

    if (pIDBInitialize)
    {
        pIDBInitialize->Release();
    }
	if(FAILED(hr))
    {
		return FALSE;
    }else
	{
		m_bOpen= TRUE;
		return TRUE;
	}

	/*
	HRESULT hr = NOERROR; 

	// Property used in property set to initialize provider
	DBPROP dbprop[1]; 

	// Property Set used to initialize provider
	DBPROPSET dbpropset[1]; 

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

	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) )
	{
	MessageBox(NULL,L"CoCreateInstance failed!", L"Casper", MB_OK);
	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_PMDB);

	if(dbprop[0].vValue.bstrVal == NULL)
	{
	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))
	{ 
	MessageBox(NULL,L"pIDBInitialize->QueryInterface failed!",
	L"Casper", MB_OK);
	goto Exit;
	}
	// Sets properties in the Data Source and initialization property	groups
	// new -> 
	hr = pIDBProperties->SetProperties( sizeof(dbprop) /	sizeof(dbprop[0]), dbpropset );
//	hr = pIDBProperties->SetProperties(1, dbpropset); 

	if(FAILED(hr))
	{
	MessageBox(NULL,L"pIDBProperties->SetProperties failed!",
	L"Casper", MB_OK);
	goto Exit;
	}
	// Initializes a data source object 
	hr = pIDBInitialize->Initialize();

	// CRASHS!!!! Error = E_FAIL.

	if(FAILED(hr))
	{
	switch(hr)
	{

	case
	DB_S_ASYNCHRONOUS :
	MessageBox(NULL,L"async", L"Casper", MB_OK);
	break;
	case DB_S_ERRORSOCCURRED :
	MessageBox(NULL,L"error", L"Casper", MB_OK);
	break;
	case E_FAIL :
		PrintErrorInfo (IID_IDBInitialize, pIDBInitialize);
	MessageBox(NULL,L"efail", L"Casper", MB_OK);
	break;
	case E_OUTOFMEMORY :
	MessageBox(NULL,L"out of mem", L"Casper", MB_OK);
	break;
	case E_UNEXPECTED :
	MessageBox(NULL,L"unex", L"Casper", MB_OK);
	break;
	case DB_E_ALREADYINITIALIZED :
	MessageBox(NULL,L"already", L"Casper", MB_OK);
	break;
	case DB_E_CANCELED :
	MessageBox(NULL,L"canc", L"Casper", MB_OK);
	break;
	case DB_E_ERRORSOCCURRED :
	MessageBox(NULL,L"errotrs occ", L"Casper", MB_OK);
	break;
	case DB_SEC_E_AUTH_FAILED :
	MessageBox(NULL,L"auth", L"Casper", MB_OK);
	break;


	}


	MessageBox(NULL,L"pIDBInitialize->Initialize() failed!",
	L"Casper", MB_OK);
	goto Exit;
	}
	// Get IDBCreateSession interface
	hr = pIDBInitialize->QueryInterface(IID_IDBCreateSession, (void **)
	&m_pIDBCreateSession);
	if (FAILED(hr))
	MessageBox(NULL,L"pIDBInitialize->QueryInterface!", L"Casper",
	MB_OK);
Exit:
	// Clear Variant
	VariantClear(&dbprop[0].vValue);

	// Release interfaces
	if(pIDBProperties)
	pIDBProperties->Release();

	if(pIDBInitialize)
	pIDBInitialize->Release();
	
	if (FAILED(hr))
	return FALSE;
	else
		return TRUE;

/*    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


	// Initialize environment
	//

	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_PMDB);
	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);
	if(FAILED(hr))
    {
		goto Exit;
    }
//.........


// Specify the command text using parameter markers in the query syntax.
// We know that this command will return 1 row and one image column (Photo).


Exit:
    // Clear Variant
    //
	VariantClear(&dbprop[0].vValue);
	
	// Release interfaces
	//
	if(pIDBProperties)
	{
		pIDBProperties->Release();
	}

    if (pIDBInitialize)
    {
        pIDBInitialize->Release();
    }
	if(FAILED(hr))
    {
		return FALSE;
    }else
		return TRUE;
		*/
}
/*
功能:執行一句SQL語句,用于執行更新數據,刪除數據的操作
參數:WCHAR *pSql --要執行的SQL語句
返回:BOOL 
	TRUE --成功
	FALSE --失敗
編寫人:呂黃梁
時間:2004-12-23
*/
BOOL CDataBase::ExecuteSql(WCHAR *pSql)
{
    HRESULT			   	hr				= NOERROR;	// Error code reporting
	IDBCreateCommand	*pIDBCrtCmd;	// Provider Interface Pointer
	ICommandText		*pICmdText;	// Provider Interface Pointer
//	writebuginfo(pSql);
	if(!m_pIDBCreateSession)
	{
		ASSERT(0);
		writebuginfo("file:%s,line:%d\r\n",__FILE__,__LINE__);
		return FALSE;
	}
	hr = m_pIDBCreateSession->CreateSession(NULL, IID_IDBCreateCommand,
    (IUnknown**) &pIDBCrtCmd);
	if (FAILED(hr))
	{
		//Send an error-specific message and do error handling.
		writebuginfo("file:%s,line:%d\r\n",__FILE__,__LINE__);
		goto Exit;
	}


	// Create the new command that uses parameters.
	hr = pIDBCrtCmd->CreateCommand(NULL, IID_ICommandText, (IUnknown**) &pICmdText);
	if (FAILED(hr))
	{
		//Send an error-specific message and do error handling.
		writebuginfo("file:%s,line:%d\r\n",__FILE__,__LINE__);
		goto Exit;
	}	
	
	
	hr = pICmdText->SetCommandText(DBGUID_DBSQL, pSql);
	if (FAILED(hr))
	{
		//Send an error-specific message and do error handling.

		writebuginfo("file:%s,line:%d\r\n",__FILE__,__LINE__);
		goto Exit;
	}

	hr = pICmdText->Execute(NULL, IID_NULL, NULL, NULL, NULL);
	if(FAILED(hr))
	{
		//Send an error-specific message and do error handling.
		char tempbuf[2048]="";
		WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK,pSql,-1,tempbuf,2048,NULL,NULL);
		writebuginfo("sql exe err:%s\n",tempbuf);
		goto Exit;
	}
Exit:

	
	// Release interfaces
	//
	if(pICmdText)
		pICmdText->Release();
	if(pIDBCrtCmd)
		pIDBCrtCmd->Release();

	if(FAILED(hr))
    {
		return FALSE;
    }else
		return TRUE;
}
/*
功能:執行一句SQL語句,用于執行更新數據,刪除數據的操作
參數:WCHAR **pSql --要執行的多個SQL語句的指針
int num
返回:BOOL 
	TRUE --成功
	FALSE --失敗
編寫人:呂黃梁
時間:2004-12-23
*/
BOOL CDataBase::ExecuteSql(NodeSql *pNode)
{
 HRESULT			   	hr				= NOERROR;	// Error code reporting
	IDBCreateCommand	*pIDBCrtCmd;	// Provider Interface Pointer
	ICommandText		*pICmdText;	// Provider Interface Pointer
//	writebuginfo(pSql);
	if(!m_pIDBCreateSession)
	{
		ASSERT(0);
		writebuginfo("file:%s,line:%d\r\n",__FILE__,__LINE__);
		return FALSE;
	}
	hr = m_pIDBCreateSession->CreateSession(NULL, IID_IDBCreateCommand,
    (IUnknown**) &pIDBCrtCmd);
	if (FAILED(hr))
	{
		//Send an error-specific message and do error handling.
		writebuginfo("file:%s,line:%d\r\n",__FILE__,__LINE__);
		goto Exit;
	}


	// Create the new command that uses parameters.
	hr = pIDBCrtCmd->CreateCommand(NULL, IID_ICommandText, (IUnknown**) &pICmdText);
	if (FAILED(hr))
	{
		//Send an error-specific message and do error handling.
		writebuginfo("file:%s,line:%d\r\n",__FILE__,__LINE__);
		goto Exit;
	}	
	char tempbuf[300];
	while(pNode != NULL)
	{
		WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK,pNode->pSql,-1,tempbuf,2048,NULL,NULL);
		writebuginfo(tempbuf);
		hr = pICmdText->SetCommandText(DBGUID_DBSQL, pNode->pSql);
		if (FAILED(hr))
		{
			//Send an error-specific message and do error handling.
	//		writebuginfo(L"SetCommand Text failure!");
	//		writebuginfo(pNode->pSql);
		writebuginfo("file:%s,line:%d\r\n",__FILE__,__LINE__);
			goto Exit;
		}

		hr = pICmdText->Execute(NULL, IID_NULL, NULL, NULL, NULL);
		if(FAILED(hr))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区久久| 韩国欧美国产1区| 成人永久免费视频| 日韩女优毛片在线| 美女国产一区二区三区| 欧美性猛交xxxx乱大交退制版| 国产精品二三区| 国产xxx精品视频大全| 精品久久久久久久久久久久久久久 | 久久精品99久久久| 制服丝袜成人动漫| 视频一区中文字幕国产| 欧美在线观看禁18| 亚洲午夜久久久久久久久久久| 欧美婷婷六月丁香综合色| 一二三区精品福利视频| 欧美日韩中文一区| 日产国产高清一区二区三区 | 日韩一二三区不卡| 男人的j进女人的j一区| 日韩一级二级三级| 狠狠色狠狠色综合日日91app| 久久久精品国产免大香伊| 国产91精品在线观看| 亚洲国产精品传媒在线观看| 97成人超碰视| 性欧美疯狂xxxxbbbb| 欧美电影免费观看高清完整版在 | 亚洲欧洲国产日本综合| 欧美在线高清视频| 乱一区二区av| 中文字幕的久久| 一本大道久久精品懂色aⅴ| 亚洲综合激情网| 欧美一区二区视频在线观看2020| 另类小说色综合网站| 国产网站一区二区三区| 99精品国产91久久久久久| 亚洲午夜免费福利视频| 精品福利在线导航| 一本一道波多野结衣一区二区| 偷拍日韩校园综合在线| 欧美大白屁股肥臀xxxxxx| 成人毛片老司机大片| 亚洲一区二区三区四区的| 日韩精品一区国产麻豆| 不卡的电影网站| 三级不卡在线观看| 中文字幕精品—区二区四季| 欧美日本视频在线| 国产成人av福利| 亚洲一区视频在线| 久久色.com| 欧美在线三级电影| 风间由美中文字幕在线看视频国产欧美 | 国产a久久麻豆| 日韩精品欧美精品| 亚洲色图在线视频| 日韩视频不卡中文| 色94色欧美sute亚洲线路一ni| 国产在线一区观看| 亚洲国产毛片aaaaa无费看 | 精品久久人人做人人爱| 色中色一区二区| 国产在线观看免费一区| 亚洲成a天堂v人片| 日韩一区中文字幕| 精品久久久久久久人人人人传媒 | 91精品欧美福利在线观看| 成人美女视频在线观看18| 日本不卡1234视频| 亚洲综合色区另类av| 国产午夜亚洲精品理论片色戒 | 国产电影一区在线| 理论电影国产精品| 首页国产欧美久久| 一区二区欧美精品| 亚洲三级电影网站| 国产亚洲精品福利| 日韩欧美三级在线| 欧美日韩高清一区二区| 99riav一区二区三区| 国产成人综合亚洲网站| 免费视频一区二区| 亚洲成人久久影院| 亚洲一级二级三级| 亚洲欧美另类久久久精品2019| 中文无字幕一区二区三区| 精品国产乱码久久久久久久久| 欧美日韩精品一区二区三区 | 国产盗摄一区二区三区| 亚洲超丰满肉感bbw| 国产精品国产三级国产a | 日韩欧美在线一区二区三区| 一本色道久久综合狠狠躁的推荐| 顶级嫩模精品视频在线看| 国内精品国产三级国产a久久| 麻豆精品国产91久久久久久| 香港成人在线视频| 亚洲一区二区三区美女| 伊人色综合久久天天人手人婷| 亚洲欧洲精品成人久久奇米网| 国产精品伦理在线| 欧美韩国一区二区| 国产精品色在线| 国产精品美女久久福利网站| 国产精品天美传媒| 中文字幕在线一区| 自拍偷拍亚洲激情| 亚洲一区二区精品3399| 亚洲国产一区二区在线播放| 亚洲国产一区二区视频| 午夜视频在线观看一区二区| 亚洲超碰精品一区二区| 日韩av午夜在线观看| 美国一区二区三区在线播放| 日本不卡高清视频| 韩国av一区二区三区| 国产高清无密码一区二区三区| 福利一区二区在线| 91在线精品一区二区三区| 91国偷自产一区二区三区成为亚洲经典 | 蜜臀av性久久久久蜜臀aⅴ| 美女一区二区三区在线观看| 精品一区二区三区不卡| 高清不卡一二三区| 在线一区二区三区做爰视频网站| 欧美蜜桃一区二区三区| 精品国产髙清在线看国产毛片| 中文字幕第一页久久| 亚洲综合在线电影| 免费观看91视频大全| 国产电影精品久久禁18| 在线观看网站黄不卡| 欧美成人r级一区二区三区| 亚洲国产精品99久久久久久久久| 一区二区三区日韩精品视频| 欧美a级一区二区| 成人永久免费视频| 欧美女孩性生活视频| 久久精品亚洲精品国产欧美kt∨| 亚洲欧美日韩国产一区二区三区 | www.日韩在线| 欧美午夜不卡在线观看免费| 欧美va亚洲va| 亚洲欧美欧美一区二区三区| 美女脱光内衣内裤视频久久影院| 高清在线观看日韩| 欧美老肥妇做.爰bbww视频| 久久精品视频一区| 天天影视网天天综合色在线播放 | 久久精品国产久精国产| 成人黄色av电影| 欧美一三区三区四区免费在线看| 欧美国产精品久久| 日韩和欧美的一区| 91在线视频免费91| 亚洲乱码日产精品bd| 久久精品国产一区二区三区免费看| 成人综合在线视频| 欧美高清hd18日本| 国产精品福利在线播放| 蜜臀国产一区二区三区在线播放| www.66久久| 精品久久久网站| 亚洲成在线观看| 不卡的av在线播放| 久久久精品影视| 秋霞电影网一区二区| 91丨九色丨蝌蚪富婆spa| 久久视频一区二区| 青娱乐精品在线视频| 在线日韩国产精品| 国产精品区一区二区三| 久久超碰97中文字幕| 欧美三级日韩在线| 亚洲日本va午夜在线影院| 国产精品亚洲午夜一区二区三区 | 亚洲国产精品一区二区尤物区| 国产真实乱偷精品视频免| 欧美日韩欧美一区二区| 亚洲日本欧美天堂| 成人久久久精品乱码一区二区三区| 日韩精品在线看片z| 日韩精品一级二级| 欧美日韩高清影院| 亚洲午夜在线视频| 在线视频国内自拍亚洲视频| 日韩美女精品在线| 97se亚洲国产综合自在线不卡| 国产精品天美传媒沈樵| 岛国av在线一区| 久久久三级国产网站| 精品综合久久久久久8888| 91精品国产一区二区三区香蕉| 视频一区在线视频| 69堂精品视频| 奇米精品一区二区三区四区| 欧美一区二区日韩| 蓝色福利精品导航|