操作都是对记录集的操作来完成的,所以操作前必须先得到记录集。
1. 新建数据库school,再建一张表student,并在windows中注册数据源school,当然也可以在MFC程序中自动注册数据源;
点击(此处)折叠或打开
-
CString szDesc;
-
szDesc.Format("DSN=%s|DESCRIPTION=%s|DBQ=%s|FIL=MicrosoftAccess|DEFAULTDIR=%s|",dstName,dstName,dbName,tmpPath);
- SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",(LPCSTR)szDesc);
3. 插入类,选择基类为CRecordSet(记录集),类名为Cji;确定后会让你选择数据源,选择school的表student
4. 会生成 ji.cpp,程序会自动将student表中的六个字段映射为六个CString字符串。
点击(此处)折叠或打开
-
void Cji::DoFieldExchange(CFieldExchange* pFX)
-
{
-
//{{AFX_FIELD_MAP(Cji)
-
pFX->SetFieldType(CFieldExchange::outputColumn);
-
RFX_Text(pFX, _T("[xuhao]"), m_xuhao);
-
RFX_Text(pFX, _T("[quhao]"), m_quhao);
-
RFX_Text(pFX, _T("[banben]"), m_banben);
-
RFX_Text(pFX, _T("[mima]"), m_mima);
-
RFX_Text(pFX, _T("[riqi]"), m_riqi);
-
RFX_Text(pFX, _T("[miaoshu]"), m_miaoshu);
-
//}}AFX_FIELD_MAP
- }
备注类型最大为64KB;再在上图的初始化映射中,指定CString的大小,比如10KB,就ok了。
点击(此处)折叠或打开
- RFX_Text(pFX, _T("[shuju]"), m_shuju,10240);
点击(此处)折叠或打开
-
Cji recset;
-
CString sql="select * from jiqi";
- recset.Open(CRecordset::dynaset,sql);
点击(此处)折叠或打开
-
recset.AddNew();
-
-
recset.m_xuhao=xuhao;
-
recset.m_quhao=quhao;
-
recset.m_banben=banben;
-
recset.m_riqi=time;
-
recset.m_mima=mima;
- recset.m_miaoshu=miaoshu;
点击(此处)折叠或打开
-
recset.Update();
- recset.Close();
8. 还举个查询的例子,查询仅仅需要获得静态只读的记录集就可以了。用forwardOnly即可。
点击(此处)折叠或打开
-
Cji recset;
- recset.Open(CRecordset::forwardOnly,strSql)
点击(此处)折叠或打开
-
while(!recset.IsEOF())
-
{
-
recset.GetFieldValue("quhao",str);
-
recset.MoveNext();
- }
-
recset.Close();