?? axlib.h
字號:
void _SetConnectionEvents(CAxConnectionEvents* pEvents);
void _ClearConnectionEvents();
bool _IsOpen();
bool _SupportsTransactions();
ADOConnection* _GetActiveConnection() { return m_piConnection; }
//Collections
ADOErrors* Errors();
ADOProperties* Properties();
//Methods
void BeginTrans(long *plTransLevel);
void Cancel();
void Close();
void CommitTrans();
void Execute(LPCTSTR lpszCmdText, long* lpRecsAffected = NULL,
CommandTypeEnum lOptions = adCmdUnknown);
void Open(LPCTSTR lpszConnectStr = NULL,
LPCTSTR lpszUserID = NULL,
LPCTSTR lpszPwd = NULL,
ConnectOptionEnum eConnnect = adConnectUnspecified);
void RollbackTrans();
//Properties
XactAttributeEnum
Attributes(long lAttribute = -1);
long CommandTimeout(long lSeconds = -1);
LPCTSTR ConnectionString(LPCTSTR lpszConnectStr = NULL);
long ConnectionTimeout(long lSeconds = -1);
CursorLocationEnum
CursorLocation(long lCursorLocation = -1);
LPCTSTR DefaultDatabase(LPCTSTR lpszDatabase = NULL);
IsolationLevelEnum
IsolationLevel(IsolationLevelEnum eIsoLevel = adXactUnspecified);
ConnectModeEnum
Mode(long lConMode = -1);
LPCTSTR Provider(LPCTSTR lpszProvider = NULL);
ObjectStateEnum
State();
LPCTSTR Version();
}; // CAxConnection
/////////////////////////////////////////////////////////////////////////////
// CAxCommand class
// Desc: Provide and interface to the stored procedures of a data provider.
// A derrived CAxCommand object is initialized with parameters and
// may be used as an argument to open a CAxRecordset object.
class CAxCommand
{
friend class CAxRecordset;
public:
CAxCommand();
virtual ~CAxCommand();
//Attributes
ADOCommand* m_piCommand;
ADOParameters* m_piParameters;
CAxConnection* m_pConnection;
//Implementation
void Create();
//Collections
ADOParameters* Parameters();
ADOProperties* Properties();
//Methods
void Cancel();
ADOParameter* CreateParameter(LPCTSTR lpszParam, DataTypeEnum eDataType,
ParameterDirectionEnum eParameterDirection, long lSize,
_variant_t *pValue);
ADORecordset* Execute(long* plAffected = NULL);
//Properties
CAxConnection* ActiveConnection(CAxConnection* pCn = NULL);
LPCTSTR CommandText(LPCTSTR lpszCmdText = NULL);
long CommandTimeout(long lSeconds = -1);
CommandTypeEnum CommandType(CommandTypeEnum eCmdType = adCmdUnspecified);
// void Prepared(BOOL bPrepare = FALSE);
ObjectStateEnum State();
protected:
virtual void _CreateParameters() { /* Override in derrived class */ }
virtual void _UpdateParameters() { /* Override in derrived class */ }
void _SetParamValue(LPCTSTR lpszParam, _variant_t* pValue);
};
/////////////////////////////////////////////////////////////////////////////
// CAxRecordset class
// Desc:
//
class CAxRecordset
{
//Construction
public:
CAxRecordset();
virtual ~CAxRecordset();
//Attributes
public:
protected:
//dbAx objects
CAxConnection* m_pConnection;
CAxCommand* m_pCommand;
CursorTypeEnum m_eCursorType;
LockTypeEnum m_eLockType;
//ADO COM objects
ADORecordset* m_piRecordset;
ADOConnection* m_piConnection;
DWORD m_dwEvents; //Recordset events cookie
CString m_strSourceString;
ADOFields* m_pFields;
CursorTypeEnum m_CursorType;
LockTypeEnum m_LockType;
long m_lOptions;
_variant_t m_varLastGoodRecord;
_variant_t m_vtData;
// ADOField* m_pField;
HRESULT m_hr;
//Implementation
public:
HRESULT Create();
//AxLib specific
void _ClearRecordsetEvents();
bool _IsEmpty();
bool _IsOpen();
virtual void _SetDefaultValues() { /*Virtual function*/ }
void _SetRecordsetEvents(CAxRecordsetEvents* pEvents);
_variant_t* _GetFieldValue(LPCTSTR lpszColumn);
_variant_t* _GetFieldValue(long nColumn);
HRESULT _GetFieldValue(LPCTSTR lpszColumn, _variant_t* pvtData);
//Collections
ADOFields* Fields();
ADOProperties* Properties();
//Methods
void AddNew();
void Cancel();
void CancelBatch();
void CancelUpdate();
ADORecordset* Clone(LockTypeEnum eLockType = adLockUnspecified);
void Close();
CompareEnum CompareBookmarks(_variant_t vtBkMark1, _variant_t vtBkMark2);
void Delete(AffectEnum eAffect = adAffectCurrent);
bool Find(LPCTSTR lpszCriteria, long nSkip = 0,
SearchDirectionEnum SearchDirection = adSearchForward,
_variant_t* pvtStart = NULL);
void GetRows();
void GetString();
void Move(long nNumRecs, _variant_t* pvtStartRec = NULL);
void MoveFirst() ;
void MoveLast();
void MoveNext();
void MovePrevious();
void NextRecordset();
void Open(CAxCommand* pCmd,
CursorTypeEnum eCursorType = adOpenForwardOnly,
CursorLocationEnum eCursorLocation = adUseClient,
LockTypeEnum eLockType = adLockOptimistic,
long nOptions = adCmdUnspecified);
void Open(LPCTSTR szSource, CAxConnection *pConnection,
CursorTypeEnum eCursorType = adOpenForwardOnly,
CursorLocationEnum eCursorLocation = adUseClient,
LockTypeEnum eLockType = adLockOptimistic,
long nOptions = adCmdUnspecified);
void Requery(ExecuteOptionEnum eExecuteOption = adOptionUnspecified);
void Resync(AffectEnum eAffectRecords = adAffectAll,
ResyncEnum eResyncValues = adResyncAllValues);
void Save(LPCTSTR lpszFileName,
PersistFormatEnum ePersistFormat = adPersistADTG);
bool Supports(CursorOptionEnum eCursorOption);
void Update();
//Properties
long AbsolutePage(long nPageNum = 0);
long AbsolutePosition(long nPosition = 0);
CAxCommand* ActiveCommand();
CAxConnection* ActiveConnection();
bool IsBOF();
_variant_t* Bookmark(_variant_t* pvtBookmark = NULL);
long CacheSize(long nCacheSize = 0);
CursorLocationEnum
CursorLocation(long eCursorLocation = -1);
CursorTypeEnum CursorType(CursorTypeEnum eCursorType = adOpenUnspecified);
EditModeEnum EditMode();
bool IsEOF();
_variant_t Filter(_variant_t* pvtFilter = NULL);
LPCTSTR Index(LPCTSTR lpszIndex = NULL);
LockTypeEnum LockType(LockTypeEnum eLockType = adLockUnspecified);
MarshalOptionsEnum
MarshalOptions(long eOptions = -1);
long MaxRecords(long nMaxRecords = -1);
long PageCount();
long PageSize(long nPageSize = 0);
long RecordCount();
LPCTSTR Sort(LPCTSTR lpszSort = NULL);
LPCTSTR Source(LPCTSTR lpszSource = NULL);
ObjectStateEnum State();
RecordStatusEnum Status();
ADOFields* GetFields() { return (m_pFields); }
long FieldCount();
protected:
HRESULT _getADOField(LPCTSTR lpszColumn, ADOField** ppFld);
HRESULT _isUpdatable(ADOField* pFld);
HRESULT _getFldValue(ADOField* pFld, unsigned short varType, void** ppValue);
HRESULT _setFldValue(ADOField* pFld, unsigned short varType, void** ppValue);
HRESULT _setGetFieldValue(bool bSave, LPCTSTR lpszColumn,
unsigned short varType, void* pvValue);
public:
void FX_BigInt(bool bSave, LPCTSTR lpszColumn, LONGLONG& llValue )
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_I8, (void*)&llValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_BigInt"), m_hr); }
void FX_Binary(bool bSave, LPCTSTR lpszColumn, BYTE** ppValue);
void FX_Bool(bool bSave, LPCTSTR lpszColumn, bool& bValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_BOOL, (void*)&bValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Bool"), m_hr); }
void FX_Char(bool bSave, LPCTSTR lpszColumn, CString& szValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_BSTR, (void*)&szValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Char"), m_hr); }
void FX_DateTime(bool bSave, LPCTSTR lpszColumn, COleDateTime& dtValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_DATE, (void*)&dtValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_DateTime"), m_hr); }
void FX_Decimal(bool bSave, LPCTSTR lpszColumn, double& dblValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_DECIMAL, (void*)&dblValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Decimal"), m_hr); }
void FX_Float(bool bSave, LPCTSTR lpszColumn, double& dblValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_R8, (void*)&dblValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Float"), m_hr); }
void FX_Image(bool bSave, LPCTSTR lpszColumn, BYTE** ppValue);
void FX_Integer(bool bSave, LPCTSTR lpszColumn, int& iValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_I4, (void*)&iValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Integer"), m_hr); }
void FX_Money(bool bSave, LPCTSTR lpszColumn, COleCurrency& cyValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_CY, (void*)&cyValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Money"), m_hr); }
void FX_NChar(bool bSave, LPCTSTR lpszColumn, CString& szValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_BSTR, (void*)&szValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_NChar"), m_hr); }
void FX_NText(bool bSave, LPCTSTR lpszColumn, CString& szValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_BSTR, (void*)&szValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_NText"), m_hr); }
void FX_Numeric(bool bSave, LPCTSTR lpszColumn, double& dblValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_DECIMAL, (void*)&dblValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Numeric"), m_hr); }
void FX_NVarChar(bool bSave, LPCTSTR lpszColumn, CString& szValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_BSTR, (void*)&szValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_NVarChar"), m_hr); }
void FX_Real(bool bSave, LPCTSTR lpszColumn, float& fltValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_R4, (void*)&fltValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Real"), m_hr); }
void FX_SmallDateTime(bool bSave, LPCTSTR lpszColumn, COleDateTime& dtValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_DATE, (void*)&dtValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_SmallDateTime"), m_hr); }
void FX_SmallInt(bool bSave, LPCTSTR lpszColumn, short& sValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_I2, (void*)&sValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_SmallInt"), m_hr); }
void FX_SmallMoney(bool bSave, LPCTSTR lpszColumn, COleCurrency& cyValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_CY, (void*)&cyValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_SmallMoney"), m_hr); }
void FX_SQLVariant(bool bSave, LPCTSTR lpszColumn, _variant_t& vtValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_VARIANT, (void*)&vtValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_SQLVariant"), m_hr); }
void FX_Text(bool bSave, LPCTSTR lpszColumn, CString& szValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_BSTR, (void*)&szValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_Text"), m_hr); }
void FX_TinyInt(bool bSave, LPCTSTR lpszColumn, BYTE& chValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_UI1, (void*)&chValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_TinyInt"), m_hr); }
void FX_UniqueIdentifier(bool bSave, LPCTSTR lpszColumn, CString& szValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_BSTR, (void*)&szValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_UniqueIdentifier"), m_hr); }
void FX_VarBinary(bool bSave, LPCTSTR lpszColumn, BYTE** ppValue);
void FX_VarChar(bool bSave, LPCTSTR lpszColumn, CString& szValue)
{if FAILED(_setGetFieldValue(bSave, lpszColumn, VT_BSTR, (void*)&szValue))
ThrowAxException(AXLIB_ERROR_NONE, _T("CAxRecordset::FX_VarChar"), m_hr); }
protected:
virtual void DoFieldExchange(bool bSave) { }
}; // class CAxRecordset
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -