// 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"
#ifdef AFX_DB_SEG
#pragma code_seg(AFX_DB_SEG)
#endif
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#pragma comment(lib, "ole32.lib")
#define new DEBUG_NEW
/////////////////////////////////////////////////////////////////////////////
// Maintain DAODBEngine object
_AFX_DAO_STATE::_AFX_DAO_STATE()
{
m_pDAODBEngine = NULL;
m_bOleInitialized = FALSE;
}
_AFX_DAO_STATE::~_AFX_DAO_STATE()
{
// these ASSERTs can trip when:
// ... there any outstanding workspsace objects
ASSERT(m_mapWorkspaces.IsEmpty());
// ... you've not shut down with a call AfxDaoTerm()
ASSERT(m_pDAODBEngine == NULL);
// ... OLE wasn't correctly shut down
ASSERT(!m_bOleInitialized);
}
//////////////////////////////////////////////////////////////////////////
// Helpers
// Index function return value
#define AFX_DAO_DATA_NOT_FOUND (-1L)
#define AFX_DAO_FETCH_PRIMARY_PROPERTIES \
(AFX_DAO_PRIMARY_INFO | AFX_DAO_SECONDARY_INFO | AFX_DAO_ALL_INFO)
#define AFX_DAO_FETCH_SECONDARY_PROPERTIES \
(AFX_DAO_SECONDARY_INFO | AFX_DAO_ALL_INFO)
#define AFX_DAO_FETCH_ALL_PROPERTIES \
AFX_DAO_ALL_INFO
// Info helpers
void AFX_CDECL AfxGetFieldInfo(DAOField* pDAOField, CDaoFieldInfo& fieldinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void AFX_CDECL AfxSetFieldInfo(DAOField* pDAOField, CDaoFieldInfo& fieldinfo);
void AFX_CDECL AfxGetIndexInfo(DAOIndex* pDAOIndex, CDaoIndexInfo& indexinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void AFX_CDECL AfxSetIndexInfo(DAOIndex* pDAOIndex, CDaoIndexInfo& indexinfo);
void AFX_CDECL AfxGetIndexFields(DAOIndex* pDAOIndex,
DAOIndexFields** ppDAOIndexFields);
void AFX_CDECL AfxGetIndexFieldInfo(DAOIndex* pDAOIndex, CDaoIndexInfo& indexinfo);
void AFX_CDECL AfxSetIndexFieldInfo(DAOIndex* pDAOIndex, CDaoIndexInfo& indexinfo);
void AFX_CDECL AfxGetDefaultValue(DAOField* pDAOField, CString& strDefaultValue);
void AFX_CDECL AfxSetDefaultValue(DAOField* pDAOField, CString& strDefaultValue);
// GetRows helper
void AFX_CDECL ThrowGetRowsDaoException(SCODE scode);
// _AFX_DAO_STATE helper
_AFX_DAO_STATE* AFX_CDECL AfxGetDaoState();
//////////////////////////////////////////////////////////////////////////
// Global data
AFX_STATIC_DATA const TCHAR _afxParameters2[] = _T("PARAMETERS ");
AFX_STATIC_DATA const TCHAR _afxSelect2[] = _T("SELECT ");
AFX_STATIC_DATA const TCHAR _afxFrom2[] = _T(" FROM ");
AFX_STATIC_DATA const TCHAR _afxWhere2[] = _T(" WHERE ");
AFX_STATIC_DATA const TCHAR _afxOrderBy2[] = _T(" ORDER BY ");
AFX_STATIC_DATA const TCHAR _afxTransform2[] = _T("TRANSFORM ");
AFX_STATIC_DATA const TCHAR _afxTable2[] = _T("TABLE ");
// Need a static VARIANT for optional DAO parameters
AFX_STATIC_DATA VARIANT _afxOptionalVariant = { VT_ERROR, 0, 0, 0, DISP_E_PARAMNOTFOUND };
// Need a static VARIANT for NULL DAO parameters
AFX_STATIC_DATA VARIANT _afxNullVariant = { VT_NULL, 0, 0, 0, 0 };
//////////////////////////////////////////////////////////////////////////
// Logging helpers
void AFXAPI AfxDaoCheck(SCODE scode, LPCSTR lpszDaoCall,
LPCSTR lpszFile, int nLine, int nError, BOOL bMemOnly)
{
UNUSED(lpszDaoCall);
UNUSED(lpszFile);
UNUSED(nLine);
if (FAILED(scode))
{
#ifdef _DEBUG
if (afxTraceFlags & traceDatabase)
{
TRACE0("\nDAO Call Failed.");
TRACE1("\n\t%hs", lpszDaoCall);
TRACE2("\n\tIn file %hs on line %d", lpszFile, nLine);
TRACE1("\n\tscode = %X\n", scode);
}
#endif
if (scode == E_OUTOFMEMORY)
AfxThrowMemoryException();
else if (!bMemOnly)
AfxThrowDaoException(nError, scode);
}
}
#ifdef _DEBUG
void AFXAPI AfxDaoTrace(SCODE scode, LPCSTR lpszDaoCall,
LPCSTR lpszFile, int nLine)
{
if (FAILED(scode))
{
if (afxTraceFlags & traceDatabase)
{
TRACE0("\nDAO Call Failed.\n\t");
TRACE1("\n%hs", lpszDaoCall);
TRACE2("\nIn file %hs on line %d\n", lpszFile, nLine);
TRACE1("scode = %X\n", scode);
}
}
}
#endif // _DEBUG
//////////////////////////////////////////////////////////////////////////
// Info structure diagnostics
#ifdef _DEBUG
void CDaoErrorInfo::Dump(CDumpContext& dc) const
{
dc << "a CDaoErrorInfo at " << (void*)this;
dc << "\nm_lErrorCode = " << m_lErrorCode;
dc << "\nm_strSource = " << m_strSource;
dc << "\nm_strDescription = " << m_strDescription;
dc << "\nm_strHelpFile = " << m_strHelpFile;
dc << "\nm_lHelpContext = " << m_lHelpContext;
dc << "\n";
}
#endif // _DEBUG
#ifdef _DEBUG
void CDaoWorkspaceInfo::Dump(CDumpContext& dc) const
{
dc << "a CDaoWorkspaceInfo at " << (void*)this;
dc << "\nm_strName = " << m_strName;
dc << "\nm_strUserName = " << m_strUserName;
dc << "\nb = m_bIsolateODBCTrans" << m_bIsolateODBCTrans;
dc << "\n";
}
#endif // _DEBUG
#ifdef _DEBUG
void CDaoDatabaseInfo::Dump(CDumpContext& dc) const
{
dc << "a CDaoDatabaseInfo at " << (void*)this;
dc << "\nm_strName = " << m_strName;
dc << "\nm_bUpdatable = " << m_bUpdatable;
dc << "\nm_bTransactions = " << m_bTransactions;
dc << "\nm_strVersion = " << m_strVersion;
dc << "\nm_lCollatingOrder = " << m_lCollatingOrder;
dc << "\nm_nQueryTimeout = " << m_nQueryTimeout;
dc << "\nm_strConnect = " << m_strConnect;
dc << "\n";
}
#endif // _DEBUG
#ifdef _DEBUG
void CDaoTableDefInfo::Dump(CDumpContext& dc) const
{
dc << "a CDaoTableDefInfo at " << (void*)this;
dc << "\nm_strName = " << m_strName;
dc << "\nm_bUpdatable = " << m_bUpdatable;
dc << "\nm_lAttributes = " << m_lAttributes;
dc << "\nm_dateDateCreated = " << m_dateCreated;
dc << "\nm_dateLastUpdated = " << m_dateLastUpdated;
dc << "\nm_strSrcTableName = " << m_strSrcTableName;
dc << "\nm_strConnect = " << m_strConnect;
dc << "\nm_strValidationRule = " << m_strValidationRule;
dc << "\nm_strValidationText = " << m_strValidationText;
dc << "\nm_lRecordCount = " << m_lRecordCount;
dc << "\n";
}
#endif // _DEBUG
#ifdef _DEBUG
void CDaoFieldInfo::Dump(CDumpContext& dc) const
{
dc << "a CDaoFieldInfo at " << (void*)this;
dc << "\nm_strName = " << m_strName;
dc << "\nm_nType = " << m_nType;
dc << "\nm_lSize = " << m_lSize;
dc << "\nm_lAttributes = " << m_lAttributes;
dc << "\nm_nOrdinalPosition = " << m_nOrdinalPosition;
dc << "\nm_bRequired = " << m_bRequired;
dc << "\nm_bAllowZeroLength = " << m_bAllowZeroLength;
dc << "\nm_lCollatingOrder = " << m_lCollatingOrder;
dc << "\nm_strForeignName = " << m_strForeignName;
dc << "\nm_strSourceField = " << m_strSourceField;
dc << "\nm_strSourceTable = " << m_strSourceTable;
dc << "\nm_strValidationRule = " << m_strValidationRule;
dc << "\nm_strValidationText = " << m_strValidationText;
dc << "\nm_strDefaultValue = " << m_strDefaultValue;
dc << "\n";
}
#endif // _DEBUG
#ifdef _DEBUG
void CDaoIndexFieldInfo::Dump(CDumpContext& dc) const
{
dc << " a CDaoIndexFieldInfo at " << (void*)this;
dc << "\nm_strName = " << m_strName;
dc << "\nm_bDescending = " << m_bDescending;
}
#endif
CDaoIndexInfo::CDaoIndexInfo()
{
m_pFieldInfos = NULL;
m_nFields = 0;
m_bCleanupFieldInfo = FALSE;
}
CDaoIndexInfo::~CDaoIndexInfo()
{
if (m_bCleanupFieldInfo && m_pFieldInfos != NULL)
{
delete[] m_pFieldInfos;
m_pFieldInfos = NULL;
}
}
#ifdef _DEBUG
void CDaoIndexInfo::Dump(CDumpContext& dc) const
{
dc << "a CDaoIndexInfo at " << (void*)this;
dc << "\nm_strName = " << m_strName;
dc << "\nm_nFields = " << m_nFields;
for (int
没有合适的资源?快使用搜索试试~ 我知道了~
离线本地oj练习系统
共2000个文件
h:1336个
lib:274个
cpp:254个
3星 · 超过75%的资源 需积分: 50 73 下载量 31 浏览量
2018-12-19
17:46:11
上传
评论 3
收藏 60.18MB ZIP 举报
温馨提示
本地离线oj练习,适合初学者的oj练习,提供的题目还蛮多的
资源推荐
资源详情
资源评论
收起资源包目录
离线本地oj练习系统 (2000个子文件)
mingw32-gcc-3.4.2 86KB
libstdc++.a 6.91MB
libstdc++.a 1.02MB
libntdll.a 746KB
libkernel32.a 639KB
libbfd.a 550KB
libmsvcr71d.a 536KB
libmsvcr71.a 535KB
libntoskrnl.a 527KB
libmsvcr70d.a 522KB
libmsvcr70.a 521KB
libmsvcrtd.a 492KB
libmsvcrt.a 492KB
libuser32.a 461KB
libadvapi32.a 401KB
libcrtdll.a 349KB
libsetupapi.a 291KB
librpcrt4.a 283KB
libopengl32.a 263KB
liboleaut32.a 256KB
libgdi32.a 248KB
libshlwapi.a 214KB
libmingwex.a 209KB
libd3dx9d.a 206KB
libdxerr9.a 190KB
libole32.a 188KB
libiberty.a 187KB
libnetapi32.a 183KB
libwininet.a 183KB
libwldap32.a 178KB
libd3dx8d.a 159KB
libdxerr8.a 157KB
libwin32k.a 146KB
libwinmm.a 141KB
libshell32.a 137KB
libodbc32.a 134KB
libndis.a 128KB
libglaux.a 123KB
libmapi32.a 118KB
libsupc++.a 114KB
librasapi32.a 110KB
libwinspool.a 97KB
libgcov.a 97KB
libvfw32.a 97KB
libcomctl32.a 96KB
libopcodes.a 91KB
libvideoprt.a 87KB
libtapi32.a 85KB
libglut32.a 85KB
libglut.a 84KB
libimagehlp.a 84KB
libmoldnamed.a 83KB
libmoldname.a 83KB
libcoldname.a 81KB
libws2_32.a 80KB
libstrmiids.a 79KB
libpenwin32.a 74KB
libcfgmgr32.a 61KB
librapi.a 60KB
libimm32.a 57KB
libavifil32.a 56KB
libmpr.a 54KB
libwsock32.a 53KB
libgcc.a 52KB
libdxguid.a 49KB
libthunk32.a 48KB
librpcns4.a 45KB
libolecli32.a 41KB
libodbccp32.a 40KB
libglu32.a 39KB
libuuid.a 37KB
libscsiport.a 37KB
libuxtheme.a 37KB
libmsvfw32.a 35KB
libwsnmp32.a 34KB
libhid.a 34KB
libmsacm32.a 34KB
libhal.a 33KB
libiphlpapi.a 33KB
libsnmpapi.a 30KB
libsecur32.a 29KB
libtdi.a 27KB
libpkpd32.a 26KB
libdnsapi.a 22KB
libnddeapi.a 22KB
libmswsock.a 20KB
libhidparse.a 20KB
libctl3d32.a 20KB
libcomdlg32.a 19KB
librpcdce4.a 19KB
libpowrprof.a 19KB
liboledlg.a 18KB
libdinput.a 18KB
libd3drm.a 17KB
libdinput8.a 16KB
libsvrapi.a 16KB
libpsapi.a 16KB
libdsetup.a 15KB
libwow32.a 14KB
libvdmdbg.a 13KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
- qq_401866402019-05-22还可以吧看看
听说我叫喵大喵
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功