Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

A Set of ADOX Classes

0.00/5 (No votes)
19 Jun 2002 21  
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

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here