在使用ADO前我们应该初始化COM库 
- if (!SUCCEEDED(CoInitialize(NULL)))
 
 -         {
 
 -                 ::AfxMessageBox(_T("Failed to initialize COM!"));
 
 -                 return FALSE;
 
 -         }
 
  复制代码 然后引入ADO动态库。 
- #import "c:\program files\common files\system\ado\msado15.dll"\
 
 -                 no_namespace\
 
 -                 rename("EOF", "adoEOF")
 
  复制代码 然后才是定义智能指针,初始化它,再进行数据库的打开与关闭 
- _ConnectionPtr m_pConnection;
 
  复制代码 
- if (!SUCCEEDED(m_pConnection.CreateInstance(__uuidof(Connection))))
 
 -         {
 
 -                 m_pConnection = NULL;
 
 -                 TRACE(_T("Database CreateInstance failed"));
 
 -         }
 
  复制代码 调用下面按钮点击函数来打开 与关闭数据库。 
- void CGkbc8Dlg::OnButton1() 
 
 - {
 
 -         if (m_pConnection->State & adStateOpen)
 
 -         {
 
 -                 AfxMessageBox(_T("数据库已经打开。"));
 
 -                 return;
 
 -         }
 
 -         
 
 -         CString strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= Demo.mdb");
 
 -         if (OpenDatabase(strConnect))
 
 -         {
 
 -                 AfxMessageBox(_T("数据库打开成功。"));
 
 -         }
 
 -         else
 
 -         {
 
 -                 AfxMessageBox(_T("数据库打开失败。"));
 
 -         }
 
 - }
 
 
  复制代码- BOOL CDemoDlg::CloseDatabase()
 
 - {
 
 -         ASSERT(m_pConnection != NULL);
 
  
-         //关闭数据库连接
 
 -         try
 
 -         {
 
 -                 if (m_pConnection->State & adStateOpen) 
 
 -                 {
 
 -                         return SUCCEEDED(m_pConnection->Close());
 
 -                 }
 
 -                 else
 
 -                 {
 
 -                         return TRUE;
 
 -                 }
 
 -         }
 
 -         catch (_com_error& e)
 
 -         {
 
 -                 TRACE(_T("%s\n"), e.ErrorMessage());
 
 -                 return FALSE;
 
 -         } 
 
 - }
 
  复制代码 上面两具按钮调用的两个函数为 
 
- void CDemoDlg::OnOpen() 
 
 - {
 
 -         if (m_pConnection->State & adStateOpen)
 
 -         {
 
 -                 AfxMessageBox(_T("数据库已经打开。"));
 
 -                 return;
 
 -         }
 
 -         
 
 -         CString strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= Demo.mdb");
 
 -         if (OpenDatabase(strConnect))
 
 -         {
 
 -                 AfxMessageBox(_T("数据库打开成功。"));
 
 -         }
 
 -         else
 
 -         {
 
 -                 AfxMessageBox(_T("数据库打开失败。"));
 
 -         }
 
 - }
 
  
- void CDemoDlg::OnClose() 
 
 - {
 
 -         if (!(m_pConnection->State & adStateOpen))
 
 -         {
 
 -                 AfxMessageBox(_T("数据库未打开。"));
 
 -                 return;
 
 -         }
 
  
-         if (CloseDatabase())
 
 -         {
 
 -                 AfxMessageBox(_T("数据库关闭成功。"));
 
 -         }
 
 -         else
 
 -         {
 
 -                 AfxMessageBox(_T("数据库关闭失败。"));
 
 -         }
 
 - }
 
  复制代码 注意,例程打开的是根目录的一个数据库文件:Demo.mdb 
上位机MFC如何使用ADO打开与关闭数据库连接 
 
 
      
  上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例   经历1年的编程与录制点击进入查看   
  如果您认可,可联系功能定制!   如果您着急,充值会员可直接联系发您资料!              
 
 
 |