Table of Contents
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.
Constructs a CADOXCatalog
object:
CADOXCatalog();
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);
bool CreateDatabase(LPCTSTR lpstrCreate);
Parameters
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);
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
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
.
The GetProcedureCount
function returns the number of stored procedures defined for the database.
long GetProcedureCount();
The GetTableCount
function returns the number of tables defined for the database.
long GetTableCount();
The GetViewCount
function returns the number of fields defined for the database.
long GetViewCount();
The GetUserCount
function returns the number of users that exist in the database.
long GetUserCount();
The GetGroupCount
function returns the number of groups that exist in the database.
long GetGroupCount();
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Constructs a CADOXTable
object:
CADOXTable(CADOXCatalog* pCat);
Parameters
CADOXCatalog* pCat
: Pointer to the CADOXCatalog
Object.
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
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.
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
The AddIndex
function creates an Index
in the table.
bool AddIndex(CADOXIndex pIndex);
Parameters
CADOXIndex pIndex
: Pointer to a CADOXIndex
Object.
See sample
The DeleteField
function removes a field and makes it inaccessible.
bool DeleteField(LPCTSTR lpstrFieldName);
Parameters
LPCTSTR lpstrFieldName
: A string
pointer containing the Field Name.
void GetName(CString &strTableName);
Parameters
CString &strTableName
: Reference to a buffer in which to return the Table Name.
Constructs a CADOXIndex
object:
CADOXIndex();
bool Create(LPCTSTR lpstrIndexName);
Parameters
LPCTSTR lpstrIndexName
: A string
pointer containing a Index Name.
See sample
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
void SetPrimarKey(bool bPrimary = true);
Parameters
See sample
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);
Constructs a CADOXProcedure
object:
CADOXProcedure(CADOXCatalog* pCat);
Parameters
CADOXCatalog* pCat
: Pointer to the CADOXCatalog
Object.
void GetCommand(CString strCommand);
Parameters
CString strCommand
: Pointer to a buffer in which to return the Command String.
void GetName(CString strName);
Parameters
CString strName
: Pointer to a buffer in which to return the Procedure Name.
bool Open(LPCTSTR lpstrProcedureName);
Parameters
LPCTSTR lpstrProcedureName
: A string
pointer containing the Procedure Name.
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.
Constructs a CADOXView
object:
CADOXView(CADOXCatalog* pCat);
Parameters
CADOXCatalog* pCat
: Pointer to the CADOXCatalog
Object.
void GetCommand(CString strCommand);
Parameters
CString strCommand
: Pointer to a buffer in which to return the Command String.
void GetName(CString strName);
Parameters
CString strName
: Pointer to a buffer in which to return the View Name.
bool Open(LPCTSTR lpstrViewName);
Parameters
LPCTSTR lpstrViewName
: A string pointer containing the View Name.
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);
Constructs a CADOXUser
object:
CADOXUser(CADOXCatalog* pCat);
Parameters
CADOXCatalog* pCat
: Pointer to the CADOXCatalog
Object.
void GetName(CString strName);
Parameters
CString strName
: Pointer to a buffer in which to return the User Name.
bool Create(LPCTSTR lpstrUserName);
Parameters
LPCTSTR lpstrUserName
: A string pointer containing a User Name.
bool Open(LPCTSTR lpstrUserName);
Parameters
LPCTSTR lpstrUserName
: A string pointer containing the User Name.
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
Carlos Antollini is a software engineer working on Object Oriented, Visual C++, MFC, COM, ATL, ADO, Internet technologies and Business Intelligence.
Carlos is originally from Argentina, he was living for several years in Fort Lauderdale, Florida, working for Citibank. Then he started his own business.
Carlos is the creator of <a href="http://www.piFive.com">piFive</a>[<a target="_blank" title="piFive" href="http://www.piFive.com">^</a>]
, a family of BI Analytic Platform software, that it deals next to, <a href="http://www.latinsys.com">latinsys</a>[<a target="_blank" title="latinsys" href="http://www.latinsys.com">^</a>]
, his partner in businesses...
Currently he is sharing his passion for project management and BI at Citigroup.