📄 odbcdynamic.h
字号:
// ODBCDynamic.h: interface for the CODBCDynamic class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ODBCDYNAMIC_H__6D89D4E2_B716_11D4_9FF2_00E098774581__INCLUDED_)
#define AFX_ODBCDYNAMIC_H__6D89D4E2_B716_11D4_9FF2_00E098774581__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <afxtempl.h>
#include "DBVariantEx.h"
typedef CTypedPtrMap<CMapStringToPtr, CString /* column name */, CDBVariantEx* /* value */> CODBCRecord;
typedef CTypedPtrArray<CObArray, CODBCRecord*> CODBCRecordArray;
class CODBCDynamic
{
public:
CODBCDynamic(LPCSTR lpszDSN,
LPCSTR lpszUser = NULL, LPCSTR lpszPassword = NULL,
SQLHENV henv = NULL, SQLHDBC hdbc = NULL);
// throws CUserException
~CODBCDynamic();
public:
enum
{
errorSqlAllocHandleHenv = 50000,
errorSqlSetEnvAttr = 50001,
errorSqlAllocHandleHdbc = 50002,
errorSqlConnect = 50003,
errorUnknownCause = 5004
};
protected:
void CleanOutRecordArray();
protected:
SQLHENV m_henv;
SQLHDBC m_hdbc;
BOOL m_bIsConnected;
public:
SQLHDBC GetHDBC ()
{
return m_hdbc;
}
public:
CODBCRecordArray m_ODBCRecordArray;
protected:
short GetFieldTypeFromSQLType(short nSQLType);
void* GetDataBuffer(CDBVariantEx* pvarValue, short nFieldType, int* pnLen, short nSQLType, UDWORD nPrecision);
long GetData(SQLHSTMT hstmt, short nFieldIndex, short nFieldType, LPVOID pvData, int nLen, short nSQLType);
public:
long ExecuteSQL(LPCTSTR lpszSQL);
long FetchData(HSTMT hstmt);
};
#endif // !defined(AFX_ODBCDYNAMIC_H__6D89D4E2_B716_11D4_9FF2_00E098774581__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -