Visual C++中的ODBC编程实例(4)
8.动态连接表
表的动态连接可以利用在调用CRecordSet::Open()函数时指定SQL语句来实现。同一个记录集对象只能访问具有相同结构的表,否则查询结果将无法与变量相对应。
void CDB::ChangeTable()
{
if (m_pSet->IsOpen()) m_pSet->Close();
switch (m_id)
{
case 0:
m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,
″SELECT * FROM SLOT0″);
//连接表SLOT0
m_id=1;
break;
case 1:
m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,
″SELECT * FROM SLOT1″); //连接表SLOT1
m_id=0;
break; }}
9.动态连接数据库
可以通过赋与CRecordSet类对象参数m_pDatabase来连接不同数据库的CDatabase对象指针,从而实现动态连接数据库。
void CDB::ChangeConnect()
{CDatabase* pdb=m_pSet->m_pDatabase;
pdb->Close();
switch (m_id)
{
case 0:
if (!pdb->Open(_T(″Super_ES″)))
//连接数据源Super_ES
{
AfxMessageBox(″数据源Super_ES打开失败″,″请检查相应的ODBC连接″, MB_OK|MB_ICONWARNING);
exit(0);
}
m_id=1;
break;
case 1:
if (!pdb->Open(_T(″Motor″)))
//连接数据源Motor
{
AfxMessageBox(″数据源Motor打开失败″,″请检查相应的ODBC连接″, MB_OK|MB_ICONWARNING);
exit(0);
}
m_id=0;
break; }}
总结:Visual C++中的ODBC类库可以帮助程序员完成绝大多数的数据库操作。利用ODBC技术使得程序员从具体的DBMS中解脱出来,从而可以减少软件开发的工作量,缩短开发周期,并提高效率和软件的可靠性。