MFC使用ADO连接SQL Server

来源:互联网 发布:网络系统集成建设方案 编辑:程序博客网 时间:2024/05/23 09:46

一、背景介绍

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

参考文献

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

0 0