关于ADO
下面我们实现利用ADO 技术访问MS sql server
案例:(sql server 2005)
数据库:
DATABASE name:Tiance_Test
TABLE name: Student
程序源码:
详细步骤:
1.创建对话框工程
2.在对话框上拖放控件(一个listbox ,3个按钮)
3.在stdafx.h中添加代码:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","rsEOF")
4.在对话框类中添加代码:
private:
_ConnectionPtr m_pConn;
_RecordsetPtr m_pRst;
5.响应“连接数据库按钮”的消息:
void CadoDlg::OnBnClickedBtnLinkdb()
{
// TODO: 在此添加控件通知处理程序代码
::CoInitialize(NULL);//初始化coml库
m_pConn.CreateInstance(__uuidof(Connection));
m_pRst.CreateInstance(__uuidof(Recordset));
m_pConn->ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=root;Initial Catalog=Tiance_Test";
m_pConn->Open("","","",-1);
}
6.响应“查询”按钮的消息:
void CadoDlg::OnBnClickedBtnQuery()
{
// TODO: 在此添加控件通知处理程序代码
//AfxOleInit();
m_pRst=m_pConn->Execute("select * from Student",NULL,adCmdText);
CListBox *pList=((CListBox*)GetDlgItem(IDC_LIST1));
while(!m_pRst->rsEOF)
{
pList->AddString((_bstr_t)m_pRst->GetCollect("S_Name"));
pList->AddString((_bstr_t)m_pRst->GetCollect("S_Address"));
pList->AddString((_bstr_t)m_pRst->GetCollect("S_School"));
m_pRst->MoveNext();
}
m_pRst->MoveFirst();
}
7.响应“关闭数据库”按钮的消息:
void CadoDlg::OnBnClickedBtnUnload()
{
// TODO: 在此添加控件通知处理程序代码
m_pRst->Close();
m_pConn->Close();
m_pRst.Release();
m_pConn.Release();
::CoUninitialize();//卸载com库
}
效果图: