A Set of ADOX Classes






4.95/5 (32 votes)
Simple database catalog access using a set of ADOX classes
Table of Contents
- Overview
- The CADOXCatalog Class
- The CADOXTable Class
- The CADOXIndex Class
- The CADOXProcedure Class
- The CADOXView Class
- The CADOXUser Class
Overview
I created these classes to make it easy to work with ADOX. For this, I created the CADOXCatalog
class, the CADOXTable
class, the CADOXIndex
class, the CADOXProcedure
class and the CADOXUser
class.
The CADOXCatalog Class
CADOXCatalog::CADOXCatalog
Constructs a CADOXCatalog
object:
CADOXCatalog();
CADOXCatalog::Open
The Open
function establishes connections to a database:
bool Open(LPCTSTR lpstrConnection);
Parameters
LPCTSTR lpstrConnection
: Astring
pointer containing a Connection String.
If the function succeeds, this returns true
.
For example:
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);
Parameters
LPCTSTR lpstrCreate
If the function succeeds, this returns true
.
For example:
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
The AddTable
function adds a new table to the database.
bool AddTable(CADOXTable pTable);
Parameters
CADOXTable pTable
: Pointer to theCADOXTable
Object.
If the function succeeds, this returns true
.
CADOXCatalog::AddUser
The AddUser
function adds a new user to the database.
bool AddUser(CADOXUser pUser, LPCTSTR lpstrPassword);
Parameters
CADOXUser pUser
: A pointer to theCADOXUser
Object.LPCTSTR lpstrPassword
A string pointer containing the user password.
If the function succeeds, this returns true
.
CADOXCatalog::GetProcedureCount
The GetProcedureCount
function returns the number of stored procedures defined for the database.
long GetProcedureCount();
CADOXCatalog::GetTableCount
The GetTableCount
function returns the number of tables defined for the database.
long GetTableCount();
CADOXCatalog::GetViewCount
The GetViewCount
function returns the number of fields defined for the database.
long GetViewCount();
CADOXCatalog::GetUserCount
The GetUserCount
function returns the number of users that exist in the database.
long GetUserCount();
CADOXCatalog::GetGroupCount
The GetGroupCount
function returns the number of groups that exist in the database.
long GetGroupCount();
CADOXCatalog::GetTableName
The GetTableName
function obtains the table name defined in the database.
void GetTableName(long nTableIndex, CString strTableName);
Parameters
long nTableIndex
: TheTable
Index in the database that is opened byCADOXCatalog
CString strTableName
: Pointer to a buffer in which to return the Table Name.
CADOXCatalog::GetProcedureName
The GetProcedureName
function obtains the stored procedure name defined in the database.
void GetProcedureName(long nProcedureIndex, CString strProcedureName);
Parameters
long nProcedureIndex
: The Procedure Index in the database that is opened byCADOXCatalog
CString strProcedureName
: Pointer to a buffer in which to return the Procedure Name.
CADOXCatalog::GetViewName
The GetViewName
function obtains the View name defined in the database.
void GetViewName(long nViewIndex, CString strViewName);
Parameters
long nViewIndex
: The View Index in the database that is opened byCADOXCatalog
CString strViewName
: Pointer to a buffer in which to return the View Name.
CADOXCatalog::GetUserName
The GetUserName
function obtains the User name defined in the database.
void GetUserName(long nUserIndex, CString strUserName);
Parameters
long nUserIndex
: The User Index in the database that is opened byCADOXCatalog
CString strUserName
: Pointer to a buffer in which to return the User Name.
CADOXCatalog::GetGroupName>
The GetGroupName
function obtains the Group name defined in the database.
void GetGroupName(long nGroupIndex, CString strGroupName);
Parameters
long nGroupIndex
: The Group Index in the database that is open byCADOXCatalog
CString strGroupName
: Pointer to a buffer in which to return the Group Name.
CADOXCatalog::DeleteTable
The DeleteTable
function deletes the definition of a table in the database.
bool DeleteTable(long nTableIndex);
bool DeleteTable(LPCTSTR lpstrTableName);
Parameters
long nTableIndex
: The Table Index in the database that is opened byCADOXCatalog
LPCTSTR lpstrTableName
: Astring
pointer containing the Table Name.
CADOXCatalog::DeleteProcedure
The DeleteProcedure
function deletes the definition of a Stored Procedure in the database.
bool DeleteProcedure(long nProcedureIndex);
bool DeleteProcedure(LPCTSTR lpstrProcedureName);
Parameters
long nProcedureIndex
: The Procedure Index in the database that is opened byCADOXCatalog
LPCTSTR lpstrProcedureName
: Astring
pointer containing the Procedure Name.
CADOXCatalog::DeleteView
The DeleteView
function deletes the definition of a View
in the database.
bool DeleteView(long nViewIndex);
bool DeleteView(LPCTSTR lpstrViewName);
Parameters
long nViewIndex
: TheView
Index in the database that is opened byCADOXCatalog
LPCTSTR lpstrViewName
: Astring
pointer containing the View Name.
CADOXCatalog::DeleteGroup
The DeleteGroup
function deletes the definition of a Group
in the database.
bool DeleteGroup(long nGroupIndex);
bool DeleteGroup(LPCTSTR lpstrGroupName);
Parameters
long nGroupIndex
: TheGroup
Index in the database that is opened byCADOXCatalog
LPCTSTR lpstrGroupName
: Astring
pointer containing the Group Name.
CADOXCatalog::DeleteUser
The DeleteUser
function deletes the definition of a User
in the database.
bool DeleteUser(long nViewIndex);
bool DeleteUser(LPCTSTR lpstrUserName);
Parameters
long nViewIndex
: The User Index in the database that is opened byCADOXCatalog
LPCTSTR lpstrUserName
: Astring
pointer containing the User Name.
The CADOXTable Class
CADOXTable::CADOXTable
Constructs a CADOXTable
object:
CADOXTable(CADOXCatalog* pCat);
Parameters
CADOXCatalog* pCat
: Pointer to the CADOXCatalog
Object.
CADOXTable::Create
The Create
function creates a table, that can be added to the database using CADOXCatalog::AddTable.
bool Create(LPCTSTR lpstrTableName);
Parameters
LPCTSTR lpstrTableName
: Astring
pointer containing the Table Name.
CADOXTable::Open
The Open
function opens an existing table in the database.
bool Open(long nTableIndex);
bool Open(LPCTSTR lpstrTableName);
Parameters
long nTableIndex
: TheTable
Index in the database that is opened byCADOXCatalog
LPCTSTR lpstrTableName
: Astring
pointer containing the Table Name.
CADOXTable::AddField
The AddField
function creates a field in the table.
bool AddField(LPCTSTR lpstrFieldName, enum DataType Type, int nLength = 0);
Parameters
LPCTSTR lpstrFieldName
: Astring
pointer containing a Field Name.enum DataType Type
: A value indicating the data type of the field. The setting can be one of these values: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
: A value that indicates the maximum size, in bytes, of a field. In any kind of fields,nLength
is ignored.
CADOXTable::AddIndex
The AddIndex
function creates an Index
in the table.
bool AddIndex(CADOXIndex pIndex);
Parameters
CADOXIndex pIndex
: Pointer to a CADOXIndex
Object.
CADOXTable::DeleteField
The DeleteField
function removes a field and makes it inaccessible.
bool DeleteField(LPCTSTR lpstrFieldName);
Parameters
LPCTSTR lpstrFieldName
: Astring
pointer containing the Field Name.
CADOXTable::GetName
void GetName(CString &strTableName);
Parameters
CString &strTableName
: Reference to a buffer in which to return the Table Name.
The CADOXIndex Class
CADOXIndex::CADOXIndex
Constructs a CADOXIndex
object:
CADOXIndex();
CADOXIndex::Create
bool Create(LPCTSTR lpstrIndexName);
Parameters
LPCTSTR lpstrIndexName
: Astring
pointer containing a Index Name.
CADOXIndex::AddField
The AddField
function creates a field in the Index.
bool AddField(LPCTSTR lpstrIndexName, enum DataType Type, int nLength = 0);
Parameters
LPCTSTR lpstrIndexName
: A string pointer containing the Index Name.enum DataType Type
: A value indicating the data type of the field. The setting can be one of these values: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
: A value that indicates the maximum size, in bytes, of a field. In any kind of fieldsnLength
is ignored
CADOXIndex::SetPrimaryKey
void SetPrimarKey(bool bPrimary = true);
Parameters
bool bPrimary = true
Sample 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);
The CADOXProcedure Class
CADOXProcedure::CADOXProcedure
Constructs a CADOXProcedure
object:
CADOXProcedure(CADOXCatalog* pCat);
Parameters
CADOXCatalog* pCat
: Pointer to the CADOXCatalog
Object.
CADOXProcedure::GetCommand
void GetCommand(CString strCommand);
Parameters
CString strCommand
: Pointer to a buffer in which to return the Command String.
CADOXProcedure::GetName
void GetName(CString strName);
Parameters
CString strName
: Pointer to a buffer in which to return the Procedure Name.
CADOXProcedure::Open
bool Open(LPCTSTR lpstrProcedureName);
Parameters
LPCTSTR lpstrProcedureName
: A string
pointer containing the Procedure Name.
CADOXProcedure::Create
bool Create(CString strName, CString strCommand);
Parameters
CString strName
: A string pointer containing a Procedure Name.CString strCommand
: A string pointer containing the Command String.
The CADOXView Class
CADOXView::CADOXView
Constructs a CADOXView
object:
CADOXView(CADOXCatalog* pCat);
Parameters
CADOXCatalog* pCat
: Pointer to the CADOXCatalog
Object.
CADOXView::GetCommand
void GetCommand(CString strCommand);
Parameters
CString strCommand
: Pointer to a buffer in which to return the Command String.
CADOXView::GetName
void GetName(CString strName);
Parameters
CString strName
: Pointer to a buffer in which to return the View Name.
CADOXView::Open
bool Open(LPCTSTR lpstrViewName);
Parameters
LPCTSTR lpstrViewName
: A string pointer containing the View Name.
CADOXView::Create
bool Create(CString strName, CString strCommand);
Parameters
CString strName
: Astring
pointer containing a View Name.CString lpstrCommand
: Astring
pointer containing the Command String.
CString strCommand = _T("Select * From Table4");
xView.Create("View01", strCommand);
The CADOXUser Class
CADOXUser::CADOXUser
Constructs a CADOXUser
object:
CADOXUser(CADOXCatalog* pCat);
Parameters
CADOXCatalog* pCat
: Pointer to the CADOXCatalog
Object.
CADOXUser::GetName
void GetName(CString strName);
Parameters
CString strName
: Pointer to a buffer in which to return the User Name.
CADOXUser::Create
bool Create(LPCTSTR lpstrUserName);
Parameters
LPCTSTR lpstrUserName
: A string pointer containing a User Name.
CADOXUser::Open
bool Open(LPCTSTR lpstrUserName);
Parameters
LPCTSTR lpstrUserName
: A string pointer containing the User Name.
CADOXUser::ChangePassword
bool ChangePassword(LPCTSTR lpstrOldPassword, LPCTSTR lpstrNewPassword);
Parameters
LPCTSTR lpstrOldPassword
: Astring
pointer containing the Old Password.LPCTSTR lpstrNewPassword
: Astring
pointer containing the New Password.
Remarks
Some functions do not work in all providers, for example CADOXCatalog::AddTable
doesn't work in MS SQL Server.
Special Thanks
Thanks for your ideas, suggestions and collaboration:
- Christian Graus
- Mike Osbahr
- Francis BONTHOUX