Today I want to give an example on how to access and retrieve data from a relational database , in this case Sybase SQL Anywhere, using MFC.
Yes MFC. MFC is an early attempt by Microsfot on creating a Object Oriented API for Windows development. Basically MFC is wrapper API for the underlaying Windows API.
For this example I am using Tools For Men (AKA Visual Studio 2010) and C++.
The high level steps are:
1. Establishing connection to the database. For this I will be using OLE DB
2. Call a store procedure.
Establishing a connection to a database using OLE DB.
For opening a connection to our SQL Anywhere a CDatasource,CSession and initialisation string is needed:Since OLE DB is made of set of interfaces that implement COM a HRESULT variable is needed to keep track of the result of our operation.
Once that we have succesfull open a session we can use this instance to access our database.
Call a Sybase SQL Anywhere store procedure
In this example my recordset is bound to the data source via my CAccessor class CCount. For an explanation of what a CAccesors are and their role in OLE DB you can gohere
When opening the recordset I am passing a store procedure, togehter with session. Store procedures are an elegant way of executing SQL operations on databases.
After getting the result of the record set is a good idea to close the session and recordset object.
Then I can pass or return my result to a calling method:
The code for the accessor type is very simple:
I found CString MFC class very handy when building the store procedure parameters:
This CString is passed to the recordset as I mentioned previoulsy:
See you next time.











