65.9K
CodeProject is changing. Read more.
Home

A Set of ADOX Classes

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.95/5 (32 votes)

Jun 20, 2002

CPOL

6 min read

viewsIcon

987366

downloadIcon

5096

Simple database catalog access using a set of ADOX classes

Table of Contents

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: A string 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 the CADOXTable Object.

If the function succeeds, this returns true.

See sample

CADOXCatalog::AddUser

The AddUser function adds a new user to the database.

bool AddUser(CADOXUser pUser, LPCTSTR lpstrPassword);

Parameters

  • CADOXUser pUser: A pointer to the CADOXUser 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: The Table Index in the database that is opened by CADOXCatalog
  • 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 by CADOXCatalog
  • 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 by CADOXCatalog
  • 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 by CADOXCatalog
  • 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 by CADOXCatalog
  • 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 by CADOXCatalog
  • LPCTSTR lpstrTableName: A string 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 by CADOXCatalog
  • LPCTSTR lpstrProcedureName: A string 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: The View Index in the database that is opened by CADOXCatalog
  • LPCTSTR lpstrViewName: A string 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: The Group Index in the database that is opened by CADOXCatalog
  • LPCTSTR lpstrGroupName: A string 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 by CADOXCatalog
  • LPCTSTR lpstrUserName: A string 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: A string pointer containing the Table Name.

See sample

CADOXTable::Open

The Open function opens an existing table in the database.

bool Open(long nTableIndex);
bool Open(LPCTSTR lpstrTableName);

Parameters

  • long nTableIndex: The Table Index in the database that is opened by CADOXCatalog
  • LPCTSTR lpstrTableName: A string 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: A string 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.

See sample

CADOXTable::AddIndex

The AddIndex function creates an Index in the table.

bool AddIndex(CADOXIndex pIndex);

Parameters

CADOXIndex pIndex: Pointer to a CADOXIndex Object.

See sample

CADOXTable::DeleteField

The DeleteField function removes a field and makes it inaccessible.

bool DeleteField(LPCTSTR lpstrFieldName);

Parameters

  • LPCTSTR lpstrFieldName: A string 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: A string pointer containing a Index Name.

See sample

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 fields nLength is ignored

See sample

CADOXIndex::SetPrimaryKey

void SetPrimarKey(bool bPrimary = true);

Parameters

  • bool bPrimary = true

See sample

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: A string pointer containing a View Name.
  • CString lpstrCommand: A string 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: A string pointer containing the Old Password.
  • LPCTSTR lpstrNewPassword: A string 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