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

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

?? bulkset.cpp

?? 利用OLEDB以數(shù)據(jù)庫的方式打開Excell文件
?? CPP
字號:
// bulkset.cpp : implementation file
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1998 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.

#include "stdafx.h"
#include "bulkset.h"

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

/////////////////////////////////////////////////////////////////////////////
// CBulkRecordsetMod

IMPLEMENT_DYNAMIC(CBulkRecordsetMod, CRecordset)

CBulkRecordsetMod::CBulkRecordsetMod(CDatabase* pdb)
	: CRecordset(pdb)
{
	//{{AFX_FIELD_INIT(CBulkRecordsetMod)
	//}}AFX_FIELD_INIT
	m_nDefaultType = dynaset;
}


BOOL CBulkRecordsetMod::Open(UINT nOpenType,
	LPCTSTR lpszSQL, DWORD dwOptions)
{
	ASSERT(dwOptions & useMultiRowFetch);
	return CRecordset::Open(nOpenType, lpszSQL, dwOptions);
}

BOOL CBulkRecordsetMod::RowsetUpdate(WORD wRow, WORD wLockType)
{
	ASSERT(wRow >= 0 && wRow <= GetRowsetSize());

	RETCODE nRetCode;
	AFX_ODBC_CALL(::SQLSetPos(m_hstmt, wRow, SQL_UPDATE, wLockType));

	return ValidateMod(wRow, SQL_ROW_UPDATED);
}

BOOL CBulkRecordsetMod::RowsetAdd(WORD wRow, WORD wLockType)
{
	// User may allocate an extra row buffer for the Add
	// (if user adds more than 1, must override)
	ASSERT(wRow >= 0 && wRow <= GetRowsetSize() + 1);

	RETCODE nRetCode;
	AFX_ODBC_CALL(::SQLSetPos(m_hstmt, wRow, SQL_ADD, wLockType));

	return ValidateMod(wRow, SQL_ROW_ADDED);
}

BOOL CBulkRecordsetMod::RowsetDelete(WORD wRow, WORD wLockType)
{
	ASSERT(wRow >= 0 && wRow <= GetRowsetSize());

	RETCODE nRetCode;
	AFX_ODBC_CALL(::SQLSetPos(m_hstmt, wRow, SQL_DELETE, wLockType));

	return ValidateMod(wRow, SQL_ROW_DELETED);
}

BOOL CBulkRecordsetMod::ValidateMod(WORD wRow, WORD wExpectedStatus)
{
	BOOL bReturn = TRUE;

	if (wRow != 0)
		bReturn = GetRowStatus(wRow) == wExpectedStatus;
	else
	{
		for (WORD wNum = 1; wNum <= GetRowsetSize(); wNum++)
		{
			// If any row status not expected, then validate fails
			if (GetRowStatus(wNum) != wExpectedStatus)
				bReturn = FALSE;
		}
	}

	return bReturn;
}

/////////////////////////////////////////////////////////////////////////////
// CDynamicBulkSet

IMPLEMENT_DYNAMIC(CDynamicBulkSet, CBulkRecordsetMod)

CDynamicBulkSet::CDynamicBulkSet(CDatabase* pdb)
	: CBulkRecordsetMod(pdb)
{
	m_nDefaultType = dynaset;
	m_nAllocatedFields = 0;

	m_ppvData = NULL;
	m_ppvLengths = NULL;
}

void CDynamicBulkSet::Close()
{
	CRecordset::Close();

	delete [] m_ppvData;
	delete [] m_ppvLengths;
}

void CDynamicBulkSet::DoBulkFieldExchange(CFieldExchange* pFX)
{
	// Allocate the buffer
	if (pFX->m_nOperation == CFieldExchange::AllocMultiRowBuffer &&
		m_nAllocatedFields == 0)
	{
		// get the field count
		m_ppvData = new void*[GetODBCFieldCount()];
		memset(m_ppvData, 0, sizeof(void*) * GetODBCFieldCount());
		m_ppvLengths = new void*[GetODBCFieldCount()];
		memset(m_ppvLengths, 0, sizeof(void*) * GetODBCFieldCount());

		m_nAllocatedFields = GetODBCFieldCount();
		m_nFields = m_nAllocatedFields;
	}

	// Should never get to here without field buffer allocation
	ASSERT(m_nAllocatedFields != 0);

	pFX->SetFieldType(CFieldExchange::outputColumn);
	for (int nNum = 0; nNum < GetODBCFieldCount(); nNum++)
	{
		RFX_Text_Bulk(pFX, _T("Dummy"), (LPSTR*)&m_ppvData[nNum],
			(long**)&m_ppvLengths[nNum], MAX_TEXT_LEN);
	}
}

void CDynamicBulkSet::CheckRowsetError(RETCODE nRetCode)
{
	// Always IGNORE data truncated warnings, as the code
	// purposely truncates text to 40 chars...

	if (nRetCode == SQL_SUCCESS_WITH_INFO)
	{
		CDBException e(nRetCode);
		// Build the error string but don't send nuisance output to TRACE window
		e.BuildErrorString(m_pDatabase, m_hstmt, FALSE);

		if (e.m_strStateNativeOrigin.Find(_T("State:01004")) >= 0)
		{
			// Do nothing here for this app
		}
		else if (e.m_strStateNativeOrigin.Find(_T("State:01S01")) >= 0)
		{
			e.Empty();
			TRACE0("Error: fetching row from server.\n");
			ThrowDBException(AFX_SQL_ERROR_ROW_FETCH);
		}
		else
		{
#ifdef _DEBUG
			// Not a truncation or row fetch warning so send debug output
			if (afxTraceFlags & traceDatabase)
			{
				TRACE0("Warning: ODBC Success With Info, ");
				e.TraceErrorMessage(e.m_strError);
				e.TraceErrorMessage(e.m_strStateNativeOrigin);
			}
#endif // _DEBUG
		}
	}
	else if (!Check(nRetCode))
		ThrowDBException(nRetCode);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品视频一区二区| 欧美国产禁国产网站cc| 久久久久久久久久久99999| 亚洲特级片在线| 精品在线播放午夜| 欧美麻豆精品久久久久久| 亚洲三级小视频| 久久成人免费网| 欧美理论在线播放| 亚洲免费av观看| 成人av在线网| 久久尤物电影视频在线观看| 午夜精品久久久久| 欧美少妇bbb| 亚洲乱码国产乱码精品精可以看| 国产精品伊人色| 日韩精品一区二区三区视频播放| 一区二区在线观看视频在线观看| 国产成人综合自拍| 久久亚洲综合av| 美女精品一区二区| 国产精品免费视频一区| 毛片一区二区三区| 欧美一区二区三区思思人| 亚洲一区二区免费视频| 日本福利一区二区| 中文字幕一区二区在线观看| 成人在线视频一区| 日本一区二区不卡视频| 国产很黄免费观看久久| 国产女人18毛片水真多成人如厕| 国产成人高清在线| 欧美韩国一区二区| 成人黄色777网| 国产精品成人午夜| 一本到不卡精品视频在线观看| 国产精品高潮呻吟| 91精彩视频在线观看| 一区二区三区四区蜜桃 | 亚洲日本丝袜连裤袜办公室| 成人精品免费看| 中文字幕中文在线不卡住| kk眼镜猥琐国模调教系列一区二区| 国产精品三级久久久久三级| av男人天堂一区| 一区二区三区日韩欧美精品| 在线看不卡av| 午夜精品福利一区二区蜜股av| 欧美精品国产精品| 久久精品国产秦先生| 久久久久久久性| 91在线观看视频| 性欧美大战久久久久久久久| 日韩欧美一区二区在线视频| 国产在线视视频有精品| 中文字幕精品在线不卡| 久久久久久久综合| 99久久99久久久精品齐齐| 亚洲第一av色| 欧美tk—视频vk| 97久久精品人人做人人爽| 亚洲精品美国一| 91麻豆精品久久久久蜜臀| 激情深爱一区二区| 亚洲欧美日韩精品久久久久| 欧美丰满嫩嫩电影| 国产成人一区在线| 亚洲男人的天堂av| 欧美成人猛片aaaaaaa| 成人美女在线观看| 图片区小说区国产精品视频| 久久久精品一品道一区| 91香蕉国产在线观看软件| 石原莉奈在线亚洲二区| 久久久国产精华| 欧美日韩国产欧美日美国产精品| 国产在线精品一区二区夜色| 亚洲视频一区在线观看| 精品精品国产高清一毛片一天堂| 99国产精品久久久久久久久久久| 日韩va亚洲va欧美va久久| 国产精品久久久久久久久搜平片| 7777精品伊人久久久大香线蕉超级流畅 | 99视频一区二区| 美女视频一区在线观看| 亚洲欧洲日韩在线| 精品福利一二区| 7777女厕盗摄久久久| 91免费看`日韩一区二区| 国内一区二区在线| 午夜私人影院久久久久| 亚洲男人的天堂在线aⅴ视频| 国产视频亚洲色图| 欧美一卡在线观看| 欧美三级电影网| 色成年激情久久综合| 成人性视频网站| 国产在线精品国自产拍免费| 免费在线观看一区| 亚洲电影中文字幕在线观看| 亚洲啪啪综合av一区二区三区| 国产欧美一区二区精品婷婷| 久久综合色综合88| 精品日产卡一卡二卡麻豆| 91精选在线观看| 337p亚洲精品色噜噜狠狠| 欧美在线观看一区二区| 在线一区二区视频| 色婷婷综合激情| 色婷婷精品久久二区二区蜜臂av| 不卡影院免费观看| 成人免费的视频| 成人sese在线| 91在线小视频| 欧美视频一区二区三区在线观看| 在线观看91视频| 欧美日韩在线三区| 欧美精品色一区二区三区| 欧美理论电影在线| 日韩一级黄色片| www国产精品av| 国产片一区二区| 亚洲欧洲成人精品av97| 亚洲免费观看高清完整版在线观看 | 欧美三区免费完整视频在线观看| 在线免费亚洲电影| 欧美日韩免费视频| 欧美一区二区三区四区五区| 欧美成人伊人久久综合网| 国产亚洲视频系列| 一区在线观看视频| 亚洲午夜精品在线| 美女性感视频久久| 欧美一区二区三区四区久久| 精品国产伦一区二区三区免费| 久久精品一级爱片| 综合久久久久久久| 香港成人在线视频| 久久福利视频一区二区| hitomi一区二区三区精品| 欧美图片一区二区三区| 精品国产乱码久久久久久老虎| 国产欧美一区二区精品性色超碰| 国产精品家庭影院| 日日摸夜夜添夜夜添国产精品| 激情综合色综合久久| 色综合久久六月婷婷中文字幕| 7777精品伊人久久久大香线蕉经典版下载 | 日韩视频一区二区三区| 国产人久久人人人人爽| 综合电影一区二区三区 | 亚洲图片欧美色图| 韩国精品主播一区二区在线观看| zzijzzij亚洲日本少妇熟睡| 欧美精品在线一区二区| 国产精品嫩草久久久久| 免费精品视频在线| 一本到三区不卡视频| 久久久亚洲精华液精华液精华液| 一区二区三区欧美久久| 久久99精品国产91久久来源| 91福利视频在线| 久久精品亚洲精品国产欧美| 亚洲成年人影院| 99久久精品久久久久久清纯| 精品日韩在线观看| 亚洲国产美女搞黄色| 国产91对白在线观看九色| 91精品欧美久久久久久动漫| 国产精品久久久一区麻豆最新章节| 肉丝袜脚交视频一区二区| 成人激情文学综合网| 一区二区三区欧美| 国产精品羞羞答答xxdd| 91精品国产黑色紧身裤美女| 亚洲色图色小说| 国产盗摄精品一区二区三区在线| 欧美一级二级三级乱码| 亚洲一区二区三区精品在线| 不卡电影免费在线播放一区| 日韩你懂的电影在线观看| 亚洲伊人色欲综合网| 99国产精品久| 国产精品网站在线观看| 国产剧情一区二区三区| 欧美成人aa大片| 蜜桃久久久久久| 日韩欧美中文一区二区| 日本系列欧美系列| 91精品免费在线观看| 天天亚洲美女在线视频| 欧美日韩aaa| 视频在线在亚洲| 欧美日韩第一区日日骚| 无吗不卡中文字幕| 欧美一区二区精品久久911| 日韩国产欧美在线观看| 91精品国产综合久久国产大片| 天堂蜜桃一区二区三区| 91精品在线麻豆|