MFC使用ADO連接SQL Server

一、背景介紹

  自動化等專業做簡單應用,使用MFC還是很普遍的,連接數據庫的方式也很多多種多樣,這裏主要介紹使用ADO方式連接數據庫,數據庫以SQL server 2008爲例。

二、ADO連接數據庫

  1.在stdafx.h**最後*加上#import “c:\program files\common files\system\ado\msado15.dll” no_namespace rename(“EOF”, “adoEOF”),實現對支持ADO的組件類型庫(.tlb)的引用。
  2.新建一個C++類,Adosql,在類申明文件Adosql.h,聲明以下變量和函數:
_ConnectionPtr m_pConnection; // 數據庫
_RecordsetPtr m_pRecordset; // 命令
_CommandPtr m_pCommand; // 記錄
void OnInitADOConn();
void ExitConnect();

在類實現文件Adosql.cpp中編寫void OnInitADOConn(), void ExitConnect()函數:

void Adosql::OnInitADOConn()
{
::CoInitialize(NULL);
try
{
m_pConnection.CreateInstance(“ADODB.Connection”);
_bstr_t strConnect=”Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=goodsinfo;Data Source=.”;
m_pConnection->Open(strConnect,”“,”“,adModeUnknown);
AfxMessageBox(_T(“連接成功”));
}
catch(_com_error e)
{
AfxMessageBox(_T(“連接失敗”));
}
}

void Adosql::ExitConnect()
{
if(m_pRecordset!=NULL)
m_pRecordset->Close();
m_pConnection->Close();
::CoUninitialize();
}
3.在需要連接數據庫的文件包含Adosql.h,實例化對象進行使用。

三、連接字符串說明

  ”Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=goodsinfo;Data Source=.”如何實現用變量代替字符串中的值,沒找到什麼好方法,我用的最笨的方法就是進行字符串分割後再連接,如:
  

_bstr_t Initial,Catalog, Data,Source,a,User,ID,Pass,word;
User=";User ID=";
ID=dbDlg.m_Username;
Pass=";Password=";
word=dbDlg.m_Password;
Initial=";Initial Catalog=";
Catalog=dbDlg.m_DBname;
Data=";Data Source=";
Source=dbDlg.m_IP;
a="Provider=SQLOLEDB.1;Persist Security Info=False";
strConnect=a + User + ID + Pass + word + Initial + Catalog + Data + Source;
mysql.m_pConnection->Open(strConnect,"","",adModeUnknown);

參考文獻

  本文參考了秋日情思的博客以及百度知道的一些內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章