VC++ ado连接数据库(可以在VC6.0使用,以access数据库为实例)(1)

来源:互联网 发布:明礼仪知荣辱演讲稿 编辑:程序博客网 时间:2024/04/20 07:12

很多新手对数据库连接迷茫了,怎么我写的就连接不上数据库呢?或者有些功能就实现不了(感觉这太奇葩了吧),下面就怎么连接数据库进行说明。

看以下代码和解说步骤:(后面附带一个完整的类给大家进行下载,便于直接进行调用)

1.首先新建一个类,方便下次使用,编写了一次就不用再编写。

假如生成类的名字为:BAdo

则在这个类头文件添加以下代码:

#import "C:\Program Files\Common Files\System\ado\msado15.dll"\
 no_namespace rename("EOF","adoEOF")

以上代码放在#pragma once前面就行了,这个不多说。

 

2.添加成员变量

_ConnectionPtr con;

_RecordsetPtr rec;//其实这2个就是ado接口指针,进行数据库的操作。

 

3.添加以下成员函数:可以通过右键类名点击添加函数进行操作:

BOOL ExecuteSQL(_bstr_t bstrSQL);
 _RecordsetPtr& GetRecordset(_bstr_t bstrSQL);
 void ExitConn();
 void Onit();

 

4.实现成员函数代码内容:

void Ado::Onit()//初始化ado连接
{
 ::CoInitialize (NULL);
 try
 {
con.CreateInstance (__uuidof(Connection));
con->Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/db1.mdb;Persist Security Info=False","","",-1);//连接数据库,d:/db1.mdb为你的数据库地址

//注意:如果要连接sql server200X上面的那条字符串需要修改一点,这个改法会在另外一篇文章再写。
 }
catch(_com_error e)//捕捉异常
{
 AfxMessageBox(e.Description ());
}
}

void Ado::ExitConn()//关闭ado连接
{
 try
 {
  if(rec!=NULL)
   rec->Close ();

  con->Close ();
  ::CoUninitialize ();

 }
catch(_com_error e)
{
  AfxMessageBox(e.Description ());
}
}

_RecordsetPtr& Ado::GetRecordset(_bstr_t bstrSQL)//查询操作
{
  try
 {
   if(con==NULL)
    Onit ();
   rec.CreateInstance (__uuidof(Recordset));
   rec->Open (bstrSQL,con.GetInterfacePtr (),adOpenDynamic,adLockOptimistic,adCmdText);

 }
catch(_com_error e)
{
  AfxMessageBox(e.Description ());
}
return rec;
}

BOOL Ado::ExecuteSQL(_bstr_t bstrSQL)//执行操作
{
  try
 {
   if(con==NULL)
    Onit();
   con->Execute (bstrSQL,NULL,adCmdText);

 }
catch(_com_error e)
{
  AfxMessageBox(e.Description ());
}
return true;
}

 

以上就简单的说明了连接数据库的代码。下面就发给大家一个ado连接类,方便大家再里面再添加一些你需要的代码和使用。

http://pan.baidu.com/s/1qWJhjXy

对于这个类的操作,在下一篇文章进行说明。

教你如何操作VS2010中SQL2008并且实现连接数据库http://blog.csdn.net/bojie5744/article/details/34853807

0 0
原创粉丝点击