用VC++6.0开发多表联接的数据库应用程序
2008-11-13 19:33:11 来源:WEB开发网void CZf0001View::OnButton1()
{
// TODO: Add your control notification handler code here
char ll[11];
int nn=0;
m_SS.GetLine(0,ll); //读“定位”编辑框中的内容
nn=m_SS.LineLength(0); //读“定位”编辑框中的字符内容的长度
if(nn) //“定位”编辑框中有输入内容,则按内容检索形成新的记录集
{ m_pSet->mbzm=(CString)ll;
m_pSet->mbzm=m_pSet->mbzm.Left(nn)+"%"; //“%”由SQL语法规定代表任意长度(长度可以为0)的字符串
m_pSet->Requery(); //在表FSB中重新检索
if(m_pSet->IsEOF())
{ MessageBox("检索结果为空!");
UpdateData(FALSE);
m_pSet->mbzm="%";
m_pSet->Requery();
}
m_pSet2->Requery(); //以表1当前记录BZM值,在表2:DBK1中检索
UpdateData(FALSE); //刷新表单内容
m_SS.SetSel(0,-1);
m_SS.ReplaceSel(""); //清除“定位”编辑框中的内容,使下一次单击“关联”按钮时,不会重复检索(即使nn=0)
}
else //“定位”编辑框为空,则按表1现有的结果集与表2:DBK1关联
{
m_pSet2->mhh=m_pSet->m_bzm; //将表1当前记录BZM值,作为表DBK1的查找参数
m_pSet2->Requery();
UpdateData(FALSE);
m_pSet->MoveNext();
}
}
4. 小结
通过本例可知,虽然VC++提供了Appwizard和Classwizard, 为编程者节省了大量的工作,但是想编出优秀的VC++应用程序,仅凭这些是远远不够的;必须熟悉MFC类库、ActiveX控件等知识。本文作为一个例子介绍了二个表的联接方法。在实际的应用中,读者可以举一翻三,编制更加完善的数据库应用程序。
更多精彩
赞助商链接