一组 ADOX 类






4.95/5 (32投票s)
使用一组 ADOX 类进行简单的数据库目录访问。
目录
概述
我创建了这些类,以便于处理 ADOX。为此,我创建了 CADOXCatalog 类、CADOXTable 类、CADOXIndex 类、CADOXProcedure 类和 CADOXUser 类。
CADOXCatalog 类
CADOXCatalog::CADOXCatalog
构造一个 CADOXCatalog 对象
CADOXCatalog();
CADOXCatalog::Open
Open 函数建立与数据库的连接
bool Open(LPCTSTR lpstrConnection);
参数
- LPCTSTR lpstrConnection:包含连接字符串的- 字符串指针。
如果函数成功,则返回true。
例如
CADOXCatalog pxcat;
CString strConnection = _T("");
strConnection = "Provider=Microsoft.JET.OLEDB.4.0;Data source = "
                "c:\\adox\\Test.mdb;Jet OLEDB:Engine Type=5;";
pxcat.Open(strConnection);
CADOXCatalog::CreateDatabase
bool CreateDatabase(LPCTSTR lpstrCreate);
参数
- LPCTSTR lpstrCreate
如果函数成功,则返回true。
例如
CADOXCatalog pxcat;
CString strConnection = _T("");
strConnection = "Provider=Microsoft.JET.OLEDB.4.0;Data source = "
                "c:\\adox\\Test.mdb;Jet OLEDB:Engine Type=5;";
pxcat.CreateDatabase(strConnection);
CADOXCatalog::AddTable
AddTable 函数向数据库添加一个新表。
bool AddTable(CADOXTable pTable);
参数
- CADOXTable pTable:指向- CADOXTable对象的指针。
如果函数成功,则返回true。
CADOXCatalog::AddUser
AddUser 函数向数据库添加一个新用户。
bool AddUser(CADOXUser pUser, LPCTSTR lpstrPassword);
参数
- CADOXUser pUser:指向- CADOXUser对象的指针。
- LPCTSTR lpstrPassword包含用户密码的字符串指针。
如果函数成功,则返回true。
CADOXCatalog::GetProcedureCount
GetProcedureCount 函数返回数据库定义的存储过程的数量。
long GetProcedureCount();
CADOXCatalog::GetTableCount
GetTableCount 函数返回数据库定义的表数量。
long GetTableCount();
CADOXCatalog::GetViewCount
GetViewCount 函数返回数据库定义的字段数量。
long GetViewCount();
CADOXCatalog::GetUserCount
GetUserCount 函数返回数据库中存在的用户数量。
long GetUserCount();
CADOXCatalog::GetGroupCount
GetGroupCount 函数返回数据库中存在的组的数量。
long GetGroupCount();
CADOXCatalog::GetTableName
GetTableName 函数获取数据库中定义的表名。
void GetTableName(long nTableIndex, CString strTableName);
参数
- long nTableIndex:由- CADOXCatalog打开的数据库中的- 表索引。
- CString strTableName:指向用于返回表名的缓冲区的指针。
CADOXCatalog::GetProcedureName
GetProcedureName 函数获取数据库中定义的存储过程名。
void GetProcedureName(long nProcedureIndex, CString strProcedureName);
参数
- long nProcedureIndex:由- CADOXCatalog打开的数据库中的过程索引。
- CString strProcedureName:指向用于返回过程名的缓冲区的指针。
CADOXCatalog::GetViewName
GetViewName 函数获取数据库中定义的视图名。
void GetViewName(long nViewIndex, CString strViewName);
参数
- long nViewIndex:由- CADOXCatalog打开的数据库中的视图索引。
- CString strViewName:指向用于返回视图名的缓冲区的指针。
CADOXCatalog::GetUserName
GetUserName 函数获取数据库中定义的用户名。
void GetUserName(long nUserIndex, CString strUserName);
参数
- long nUserIndex:由- CADOXCatalog打开的数据库中的用户索引。
- CString strUserName:指向用于返回用户名的缓冲区的指针。
CADOXCatalog::GetGroupName>
GetGroupName 函数获取数据库中定义的组名。
void GetGroupName(long nGroupIndex, CString strGroupName);
参数
- long nGroupIndex:由- CADOXCatalog打开的数据库中的组索引。
- CString strGroupName:指向用于返回组名的缓冲区的指针。
CADOXCatalog::DeleteTable
DeleteTable 函数删除数据库中表的定义。
bool DeleteTable(long nTableIndex);
bool DeleteTable(LPCTSTR lpstrTableName);
参数
- long nTableIndex:由- CADOXCatalog打开的数据库中的表索引。
- LPCTSTR lpstrTableName:包含表名的- 字符串指针。
CADOXCatalog::DeleteProcedure
DeleteProcedure 函数删除数据库中存储过程的定义。
bool DeleteProcedure(long nProcedureIndex);
bool DeleteProcedure(LPCTSTR lpstrProcedureName);
参数
- long nProcedureIndex:由- CADOXCatalog打开的数据库中的过程索引。
- LPCTSTR lpstrProcedureName:包含过程名的- 字符串指针。
CADOXCatalog::DeleteView
DeleteView 函数删除数据库中视图的定义。
bool DeleteView(long nViewIndex);
bool DeleteView(LPCTSTR lpstrViewName);
参数
- long nViewIndex:由- CADOXCatalog打开的数据库中的- 视图索引。
- LPCTSTR lpstrViewName:包含视图名的- 字符串指针。
CADOXCatalog::DeleteGroup
DeleteGroup 函数删除数据库中组的定义。
bool DeleteGroup(long nGroupIndex);
bool DeleteGroup(LPCTSTR lpstrGroupName);
参数
- long nGroupIndex:由- CADOXCatalog打开的数据库中的- 组索引。
- LPCTSTR lpstrGroupName:包含组名的- 字符串指针。
CADOXCatalog::DeleteUser
DeleteUser 函数删除数据库中用户的定义。
bool DeleteUser(long nViewIndex);
bool DeleteUser(LPCTSTR lpstrUserName);
参数
- long nViewIndex:由- CADOXCatalog打开的数据库中的用户索引。
- LPCTSTR lpstrUserName:包含用户名的- 字符串指针。
CADOXTable 类
CADOXTable::CADOXTable
构造一个 CADOXTable 对象
CADOXTable(CADOXCatalog* pCat);
参数
CADOXCatalog* pCat:指向 CADOXCatalog 对象的指针。
CADOXTable::Create
Create 函数创建一个表,可以使用 CADOXCatalog::AddTable 将其添加到数据库。
bool Create(LPCTSTR lpstrTableName);
参数
- LPCTSTR lpstrTableName:包含表名的- 字符串指针。
CADOXTable::Open
Open 函数打开数据库中现有的表。
bool Open(long nTableIndex);
bool Open(LPCTSTR lpstrTableName);
参数
- long nTableIndex:由- CADOXCatalog打开的数据库中的- 表索引。
- LPCTSTR lpstrTableName:包含表名的- 字符串指针。
CADOXTable::AddField
AddField 函数在表中创建一个字段。
bool AddField(LPCTSTR lpstrFieldName, enum DataType Type, int nLength = 0);
参数
- LPCTSTR lpstrFieldName:包含字段名的- 字符串指针。
- enum DataType Type:指示字段数据类型的- enum值。此设置可以是以下值之一- CADOXTable::typeSmallInt
- CADOXTable::typeInteger
- CADOXTable::typeUnsignedTinyInt
- CADOXTable::typeUnsignedSmallInt
- CADOXTable::typeUnsignedInt
- CADOXTable::typeUnsignedBigInt
- CADOXTable::typeSingle
- CADOXTable::typeDouble
- CADOXTable::typeCurrency
- CADOXTable::typeDecimal
- CADOXTable::typeNumeric
- CADOXTable::typeBoolean
- CADOXTable::typeDate
- CADOXTable::typeDBDate
- CADOXTable::typeDBTime
- CADOXTable::typeDBTimeStamp
- CADOXTable::typeBSTR
- CADOXTable::typeVarChar
- CADOXTable::typeLongVarChar
- CADOXTable::typeWChar
- CADOXTable::typeVarWChar
- CADOXTable::typeLongVarWChar
- CADOXTable::typeBinary
- CADOXTable::typeVarBinary
- CADOXTable::typeLongVarBinary
- CADOXTable::typeChapter
- CADOXTable::typeFileTime
- CADOXTable::typePropVariant
- CADOXTable::typeVarNumeric
 
- int nLength = 0:指示字段最大大小(以字节为单位)的值。在任何类型的字段中,- nLength都被忽略。
CADOXTable::AddIndex
AddIndex 函数在表中创建一个索引。
bool AddIndex(CADOXIndex pIndex);
参数
CADOXIndex pIndex:指向 CADOXIndex 对象的指针。
CADOXTable::DeleteField
DeleteField 函数删除一个字段并使其无法访问。
bool DeleteField(LPCTSTR lpstrFieldName);
参数
- LPCTSTR lpstrFieldName:包含字段名的- 字符串指针。
CADOXTable::GetName
void GetName(CString &strTableName);
参数
- CString &strTableName:对用于返回表名的缓冲区的引用。
CADOXIndex 类
CADOXIndex::CADOXIndex
构造一个 CADOXIndex 对象
CADOXIndex();
CADOXIndex::Create
bool Create(LPCTSTR lpstrIndexName);
参数
- LPCTSTR lpstrIndexName:包含索引名的- 字符串指针。
CADOXIndex::AddField
AddField 函数在索引中创建一个字段。
bool AddField(LPCTSTR lpstrIndexName, enum DataType Type, int nLength = 0);
参数
- LPCTSTR lpstrIndexName:包含索引名的字符串指针。
- enum DataType Type:指示字段数据类型的- enum值。此设置可以是以下值之一- CADOXIndex::typeSmallInt
- CADOXIndex::typeInteger
- CADOXIndex::typeUnsignedTinyInt
- CADOXIndex::typeUnsignedSmallInt
- CADOXIndex::typeUnsignedInt
- CADOXIndex::typeUnsignedBigInt
- CADOXIndex::typeSingle
- CADOXIndex::typeDouble
- CADOXIndex::typeCurrency
- CADOXIndex::typeDecimal
- CADOXIndex::typeNumeric
- CADOXIndex::typeBoolean
- CADOXIndex::typeDate
- CADOXIndex::typeDBDate
- CADOXIndex::typeDBTime
- CADOXIndex::typeDBTimeStamp
- CADOXIndex::typeBSTR
- CADOXIndex::typeVarChar
- CADOXIndex::typeLongVarChar
- CADOXIndex::typeWChar
- CADOXIndex::typeVarWChar
- CADOXIndex::typeLongVarWChar
- CADOXIndex::typeBinary
- CADOXIndex::typeVarBinary
- CADOXIndex::typeLongVarBinary
- CADOXIndex::typeChapter
- CADOXIndex::typeFileTime
- CADOXIndex::typePropVariant
- CADOXIndex::typeVarNumeric
 
- int nLength = 0:指示字段最大大小(以字节为单位)的值。在任何类型的字段中,- nLength都被忽略。
CADOXIndex::SetPrimaryKey
void SetPrimarKey(bool bPrimary = true);
参数
- bool bPrimary = true
示例 01
CADOXTable pxTable(&pxcat);
pxTable.Create("Table4");
pxTable.AddField("Column1", CADOXTable::typeInteger, 0);
pxTable.AddField("Column2", CADOXTable::typeInteger, 0);
pxTable.AddField("Column3", CADOXTable::typeWChar, 25);
pxcat.AddTable(pxTable);
CADOXIndex pxInd;
pxInd.Create("Index1");
pxInd.AddField("Column1", CADOXIndex::typeInteger, 0);
pxInd.SetPrimarKey();
pxTable.AddIndex(pxInd);
CADOXProcedure 类
CADOXProcedure::CADOXProcedure
构造一个 CADOXProcedure 对象
CADOXProcedure(CADOXCatalog* pCat);
参数
CADOXCatalog* pCat:指向 CADOXCatalog 对象的指针。
CADOXProcedure::GetCommand
void GetCommand(CString strCommand);
参数
CString strCommand:指向用于返回命令字符串的缓冲区的指针。
CADOXProcedure::GetName
void GetName(CString strName);
参数
CString strName:指向用于返回过程名的缓冲区的指针。
CADOXProcedure::Open
bool Open(LPCTSTR lpstrProcedureName);
参数
LPCTSTR lpstrProcedureName:包含过程名的字符串指针。
CADOXProcedure::Create
bool Create(CString strName, CString strCommand);
参数
- CString strName:包含过程名的字符串指针。
- CString strCommand:包含命令字符串的字符串指针。
CADOXView 类
CADOXView::CADOXView
构造一个 CADOXView 对象
CADOXView(CADOXCatalog* pCat);
参数
CADOXCatalog* pCat:指向 CADOXCatalog 对象的指针。
CADOXView::GetCommand
void GetCommand(CString strCommand);
参数
- CString strCommand:指向用于返回命令字符串的缓冲区的指针。
CADOXView::GetName
void GetName(CString strName);
参数
- CString strName:指向用于返回视图名的缓冲区的指针。
CADOXView::Open
bool Open(LPCTSTR lpstrViewName);
参数
- LPCTSTR lpstrViewName:包含视图名的字符串指针。
CADOXView::Create
bool Create(CString strName, CString strCommand);
参数
- CString strName:包含视图名的- 字符串指针。
- CString lpstrCommand:包含命令字符串的- 字符串指针。
CString strCommand = _T("Select * From Table4");
xView.Create("View01", strCommand);
CADOXUser 类
CADOXUser::CADOXUser
构造一个 CADOXUser 对象
CADOXUser(CADOXCatalog* pCat);
参数
CADOXCatalog* pCat:指向 CADOXCatalog 对象的指针。
CADOXUser::GetName
void GetName(CString strName);
参数
- CString strName:指向用于返回用户名的缓冲区的指针。
CADOXUser::Create
bool Create(LPCTSTR lpstrUserName);
参数
- LPCTSTR lpstrUserName:包含用户名的字符串指针。
CADOXUser::Open
bool Open(LPCTSTR lpstrUserName);
参数
- LPCTSTR lpstrUserName:包含用户名的字符串指针。
CADOXUser::ChangePassword
bool ChangePassword(LPCTSTR lpstrOldPassword, LPCTSTR lpstrNewPassword);
参数
- LPCTSTR lpstrOldPassword:包含旧密码的- 字符串指针。
- LPCTSTR lpstrNewPassword:包含新密码的- 字符串指针。
备注
某些函数并非在所有提供程序中都可用,例如 CADOXCatalog::AddTable 在 MS SQL Server 中不起作用。
特别感谢
感谢您的想法、建议和合作
- Christian Graus
- Mike Osbahr
- Francis BONTHOUX


