VC ADO连接SQL数据库

 

VC ADO连接SQL数据库

数据源方式连接。

1、应用程序的stdafx.h头文件中(也可以在其他合适的地方)包含如下语句。

#import "C://program files//common files//system//ado//msado15.dll" no_namespace rename ("EOF", "adoEOF")

 

2、连接数据库

CoInitialize(NULL);                                          //初始化Com组件不知是否有必要

     //conPtr.CreateInstance("ADODB.Connection");            //Connection用于与数据库服务器的链接

     conPtr.CreateInstance(__uuidof(Connection));            //Connection用于与数据库服务器的链接另一种方式

     CString conStr;

     conStr.Format(_T("DSN=%s;"), _T("数据源名"));

     /******************连接数据库********************/

     try

     {

         conPtr->ConnectionTimeout = 5;                          //设置连接时间

         conPtr->Open((_bstr_t)conStr, _T("用户名"),_T("密码"), adModeUnknown);

     }

     catch(_com_error e)                                              //捕捉异常

     {

         AfxMessageBox(e.ErrorMessage());

     }

     CoUninitialize();                                       //释放com组件//不知是否有必要

        

3、访问数据库

_RecordsetPtr recordPtr;//数据集指针

recordPtr.CreateInstance(__uuidof(Recordset));

CString cmdStr=_T("select name,stuno from student");//student为表名 该表中有两个字段name(字符型)stunoint型)

     try

     {

              recordPtr->Open(_variant_t(cmdStr),

              conPtr.GetInterfacePtr(),

              adOpenDynamic,

              adLockOptimistic,

              adCmdText);

     }

     catch (_com_error  e)

     {

         AfxMessageBox(e.Description());

     }

     while (!(recordPtr->adoEOF))

     {//获取记录

         CString name=(CString)recordPtr->GetCollect(_variant_t("name")).bstrVal;

         int no=recordPtr->GetCollect(_variant_t("stuno")).intVal;

         recordPtr->MoveNext();

     }

     recordPtr->Close();//关闭记录集

     recordPtr.Release();//释放空间

     conPtr->Close();//关闭连接

     conPtr.Release();//释放空间

 

非数据源方式连接。

应用程序的stdafx.h头文件中(也可以在其他合适的地方)包含如下语句。

#import "C://program files//common files//system//ado//msado15.dll" no_namespace rename ("EOF", "adoEOF")

 

连接数据库

CoInitialize(NULL);                                          //初始化Com组件不知是否有必要

     conPtr.CreateInstance(__uuidof(Connection));            //Connection用于与数据库服务器的链接

     CString conStr;// (local)表示本地                       //数据库连接字符串

     conStr.Format(_T("Driver=SQL SERVER;Database=%s;Server=%s;"), _T("数据库名"),_T("(local)"));

     /******************连接数据库********************/

     try

     {

         conPtr->ConnectionTimeout = 5;                          //设置连接时间

         conPtr->Open(_bstr_t(conStr),_T("用户名"),_T("密码"),option);    //连接SQL SERVER

     }

     catch(_com_error e)                                              //捕捉异常

     {

         AfxMessageBox(e.ErrorMessage());

     }

     CoUninitialize();                                            //释放com组件

获取记录集

获取记录集的方式与数据源方式访问数据库相同

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值