您的位置:首页 > 数据库

MFC使用ADO连接SQL Server

2015-12-14 17:11 369 查看

一、背景介绍

  自动化等专业做简单应用,使用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);


参考文献

  本文参考了秋日情思的博客以及百度知道的一些内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mfc sql server ADO