📄 simpleadoclass_def.h
字号:
// 下列 ifdef 块是创建使从 DLL 导出更简单的
//宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 SIMPLEADOCLASS_EXPORTS
// 符号编译的。在使用此 DLL 的
//任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
// SIMPLEADOCLASS_API 函数视为是从此 DLL 导入的,而此 DLL 则将用此宏定义的
// 符号视为是被导出的。
//※:使用这些数据库类之前必须初始化COM子系统,调用CoInitialize(...)
#include <oaidl.h>
#ifdef SIMPLEADOCLASS_EXPORTS
#define SIMPLEADOCLASS_API __declspec(dllexport)
#else
#define SIMPLEADOCLASS_API __declspec(dllimport)
# pragma comment(lib, "SimpleAdoClass.lib") //在项目属性中要指定库目录
#endif
class CMyAdoClass;
class CMyAdoxClass;
class SIMPLEADOCLASS_API CSimpleAdoClass
{
public:
enum FieldAttributeEnum
{
adFldUnspecified = -1,
adFldMayDefer = 2,
adFldUpdatable = 4,
adFldUnknownUpdatable = 8,
adFldFixed = 16,
adFldIsNullable = 32,
adFldMayBeNull = 64,
adFldLong = 128,
adFldRowID = 256,
adFldRowVersion = 512,
adFldCacheDeferred = 4096,
adFldIsChapter = 8192,
adFldNegativeScale = 16384,
adFldKeyColumn = 32768,
adFldIsRowURL = 65536,
adFldIsDefaultStream = 131072,
adFldIsCollection = 262144
};
enum DataTypeEnum
{
adEmpty = 0,
adTinyInt = 16,
adSmallInt = 2,
adInteger = 3,
adBigInt = 20,
adUnsignedTinyInt = 17,
adUnsignedSmallInt = 18,
adUnsignedInt = 19,
adUnsignedBigInt = 21,
adSingle = 4,
adDouble = 5,
adCurrency = 6,
adDecimal = 14,
adNumeric = 131,
adBoolean = 11,
adError = 10,
adUserDefined = 132,
adVariant = 12,
adIDispatch = 9,
adIUnknown = 13,
adGUID = 72,
adDate = 7,
adDBDate = 133,
adDBTime = 134,
adDBTimeStamp = 135,
adBSTR = 8,
adChar = 129,
adVarChar = 200,
adLongVarChar = 201,
adWChar = 130,
adVarWChar = 202,
adLongVarWChar = 203,
adBinary = 128,
adVarBinary = 204,
adLongVarBinary = 205,
adChapter = 136,
adFileTime = 64,
adPropVariant = 138,
adVarNumeric = 139,
adArray = 8192
};
public:
CSimpleAdoClass();
virtual ~CSimpleAdoClass();
private:
CMyAdoClass *pMyAdoClass;
public:
bool ExecuteCommand(VARIANT_BOOL bStoredProcedure, VARIANT_BOOL bChangeRec);
bool Close(void);
bool CloseRecordset(void);
bool Delete(void);
bool ExecuteConnection(BSTR query, VARIANT_BOOL bChangeRec);
//使用SQL语句修改记录,例如:
//建立表:ExecuteConnection("CREATE TABLE HotBikes (ID INTEGER, Model VarChar(25), Manufacturer VarChar(80))", VARIANT_FALSE);
//插入记录:insert into HotBikes (ID, Model, Manufacturer) values (?, ?, ?)";
//修改记录:UPDATE HotBikes SET TopSpeed=170 WHERE ID=1
bool MoveFirst();
short get_BOF();//0----当前不是在头部 其余---当前在头部或错误
bool get_CommandText(BSTR * newVal);
short get_Empty();
short get_EOF();//0----当前不是在尾部 其余---当前在尾部或错误
bool get_Field(int FieldIndex,VARIANT *FieldValue);
bool get_FieldCount(long * newVal);
bool MoveLast();
bool MoveNext();
bool OpenRecordset(VARIANT query,bool isBatchUpdate);//获取记录集
bool put_CommandText(BSTR newVal);
bool put_Field(int idx, VARIANT newVal);
bool put_StoredProc(BSTR newVal);
bool MovePrev();
bool Requery();
bool ADORelease();
bool Open(const WCHAR* ConnectStr, const WCHAR* UserName, const WCHAR* Password);
bool GetFieldsName(long *pFieldsCount,LPWSTR** ppFieldsNameArray);//返回的名字采用CoTaskMemAlloc()
bool GetFieldsValue(long *pFieldsCount,VARIANT** ppFieldsValue);
bool PutFieldsValue(DWORD FieldIndexCount, long *FieldIndexArray,VARIANT* FieldsValue);// 按照需要设置指定列的值
bool AddNewRecord(void);
bool Update(bool isUpdateOrCancelUpdate);
bool UpdateBatch(bool isUpdateOrCancelUpdate);
bool GetRecordCount(LONG *pRecordCount);
bool DatabaseIsOpen(void);
bool RecordsetIsOpen(void);
bool GetRecordsetAllFieldsValue(long *pRowCount,long *pFieldCount,VARIANT** ppFieldsValue);
};
class SIMPLEADOCLASS_API CSimpleAdoxClass
{
private:
CMyAdoxClass* pMyAdoxClass;
public:
bool GetDatabaseTables(LPCWSTR pConnectStr,long *pTableCount,LPWSTR** ppTablesNameArray);
CSimpleAdoxClass();
virtual ~CSimpleAdoxClass();
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -