可以的,其实很简单的,,只要用到两个类就可以了CRecordSet 和CDatabase就可以了。。。。
我现在正作的一个系统就是基于对话框实现的。。我把总结的过程分享如下:
1:定义全局变量 CDatabase 对象 如: CDatabase m_db;
2:把它和CRecordSet对象绑定。如: CTRecordSet m_tset(&m_db);
CBRecordSet m_bset(&m_db);
CDRecordSet m_set(&m_db); 由于这个过程多在OnInitDialog里进行,所以这时要用if (m_db.IsOpen()) m_db.Close();确保没有打开。否则会白白占用一个打开的句柄
3:要使用它时则用Open打开 如: m_db.Open( _T( "lhwy" ), FALSE,FALSE, _T( "ODBC " ),TRUE );
然后确保CRecordSet对象也是关闭壮态,以使用它们绑定表进行操作。语句为: if(m_set.IsOpen()) m_set.Close();
if(m_tset.IsOpen()) m_tset.Close();
if(m_bset.IsOpen()) m_bset.Close();
然后根据情况来打开CRecordSet,比如说有多个表的,可以根据用户选择或是需要来打开如: if(m_Getstring=="一班")
m_set.Open();
if(m_Getstring=="二班")
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]",NULL);
4:与3同一个模块中,使用完一定要关闭它们。如: m_bset.Close();
m_db.Close();
通常情况下:1在全局位置。2在初始化的模块中。3和4在同一个模块中,即打开,用完又要关闭。