亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
蜜臀精品久久久久久蜜臀| 亚洲欧洲性图库| 国产精品嫩草影院av蜜臀| 国产精品国产精品国产专区不蜜| 一色桃子久久精品亚洲| 午夜久久久久久| 国产大片一区二区| 欧美人成免费网站| 国产日韩精品一区二区三区在线| 一区二区三区四区高清精品免费观看 | 视频一区二区三区入口| 国产精品影视天天线| 9191精品国产综合久久久久久| 中文字幕av不卡| 国产剧情一区二区| 欧美剧情电影在线观看完整版免费励志电影| 亚洲精品一区二区三区香蕉| 亚洲香蕉伊在人在线观| 91蜜桃在线免费视频| 国产精品五月天| 国产.精品.日韩.另类.中文.在线.播放| 日本韩国一区二区| 亚洲男人的天堂在线观看| 粉嫩嫩av羞羞动漫久久久| 色综合天天性综合| 日韩欧美一二三区| 中文字幕不卡一区| 亚洲精品伦理在线| 国产成人在线观看| 欧美日韩一区二区在线观看| 视频一区二区三区中文字幕| 精品裸体舞一区二区三区| 国产一区二区按摩在线观看| 国产精品嫩草久久久久| 制服丝袜av成人在线看| 国产真实乱对白精彩久久| 久久精品一区蜜桃臀影院| av午夜一区麻豆| 一区二区三区日韩欧美精品| 欧美大片一区二区三区| 成人夜色视频网站在线观看| 亚洲国产高清在线| 欧美放荡的少妇| 国产精品影视在线| 日韩精品乱码av一区二区| 国产亚洲欧美一级| 色国产综合视频| 国产精品夜夜爽| 亚洲精品水蜜桃| 欧美私人免费视频| 国产精品主播直播| 亚洲成人综合视频| 欧美一区二区在线视频| 成人一区二区三区视频| 久久电影国产免费久久电影| 亚洲欧美日韩在线| 日本一区二区在线不卡| 91精品国产乱码久久蜜臀| 久久国内精品视频| 亚洲一区二区三区精品在线| 26uuu亚洲综合色欧美 | 精品国产一区二区三区忘忧草| 成人性生交大片免费看在线播放| 天堂午夜影视日韩欧美一区二区| 亚洲精品视频在线看| 2021中文字幕一区亚洲| 色网站国产精品| 成人精品一区二区三区中文字幕| 免费美女久久99| 日韩av在线免费观看不卡| 最新久久zyz资源站| 日韩一区欧美一区| 国产精品盗摄一区二区三区| 久久青草国产手机看片福利盒子 | 99精品视频一区| 国产一本一道久久香蕉| 国产一区三区三区| 爽爽淫人综合网网站| 中文字幕第一页久久| 久久日韩精品一区二区五区| 日韩午夜三级在线| 成人黄色一级视频| 成人ar影院免费观看视频| 国产精品亚洲一区二区三区妖精| 精品在线亚洲视频| 精品一区二区三区久久| 国产一区二区成人久久免费影院| 麻豆成人在线观看| 免费高清成人在线| 青青草成人在线观看| 人禽交欧美网站| 美女免费视频一区| 韩国精品久久久| 久久成人综合网| 成人中文字幕在线| 成人免费高清在线| 国产精品一区二区久久精品爱涩| 丰满少妇久久久久久久| 国产成人夜色高潮福利影视| 91丨porny丨中文| 91丨九色丨黑人外教| 欧美日本在线观看| 337p亚洲精品色噜噜噜| 91精品国产欧美一区二区18| 国产欧美1区2区3区| 国产精品萝li| 亚洲一线二线三线久久久| 国产清纯白嫩初高生在线观看91| 久久久久久久久一| 国产精品久久久久久久久免费桃花| 亚洲欧美电影院| 亚洲夂夂婷婷色拍ww47| 久久不见久久见免费视频7| 国内精品不卡在线| 免费观看成人av| 91免费视频网| 欧美日韩精品福利| 欧美韩国日本不卡| 亚洲欧美成人一区二区三区| 另类小说欧美激情| 成人深夜视频在线观看| 欧美精品久久99| 久久久久久久久久久久电影 | 国产午夜久久久久| 亚洲精品国产无套在线观| 久久综合综合久久综合| 国产高清一区日本| 不卡的av网站| 欧美人与性动xxxx| 亚洲色图一区二区三区| 午夜久久久影院| 欧美日本一区二区三区| 精品美女一区二区| 婷婷丁香久久五月婷婷| 国产精品综合二区| 欧美午夜片在线看| 久久理论电影网| 中文字幕在线视频一区| 美女网站色91| 色综合久久久久久久久| 久久久一区二区三区| 一区二区三区资源| 国产91精品精华液一区二区三区| 精品婷婷伊人一区三区三| 欧美精品亚洲二区| 最新日韩av在线| 国产一区二区精品久久| 色综合久久久久网| 国产天堂亚洲国产碰碰| 日韩精品免费视频人成| 北条麻妃一区二区三区| 日韩欧美视频在线| 亚洲综合在线第一页| 国产成人av电影免费在线观看| 欧美日韩电影在线| 亚洲成人午夜影院| 91在线视频观看| 国产婷婷色一区二区三区四区 | 午夜av区久久| 91猫先生在线| 欧美va在线播放| 黑人巨大精品欧美一区| 在线观看日韩高清av| 依依成人精品视频| 国产精品18久久久久| 久久精品视频免费| 老司机一区二区| 欧美一区二区啪啪| 亚洲bt欧美bt精品| 欧美午夜精品久久久久久超碰 | 日韩亚洲欧美高清| 另类小说欧美激情| 久久久久久一级片| 成人自拍视频在线观看| 最好看的中文字幕久久| 91啪九色porn原创视频在线观看| 国产精品高潮久久久久无| 成熟亚洲日本毛茸茸凸凹| 国产精品乱人伦| 久久99精品久久久| 欧美一区二区精品久久911| 亚洲国产精品人人做人人爽| 日本乱人伦aⅴ精品| 久久久久久久精| 国产精品123| 国产亚洲va综合人人澡精品| 国产成人免费高清| 亚洲国产精品一区二区www| 欧美视频在线播放| 麻豆91免费看| xnxx国产精品| 色综合久久综合| 亚洲aⅴ怡春院| 久久亚洲一区二区三区四区| 老色鬼精品视频在线观看播放| 久久久91精品国产一区二区三区| 国产精品18久久久久久vr| 亚洲女爱视频在线| 欧美日韩激情一区| 国产一区在线视频|