VC++6.0 使用ADO动态链接SQL Server 2005数据库

         ADO(ActiveX Data Objiects)是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB的一个中间层,ADO是建立在OLE DB底层技术之上的搞基编程接口。ADO中最重要的对象有三个:Connection、Command和Recordset,他们分别表示连接对象、命令对象和记录集对象。

       Connection对象:与数据库的 连接;Command对象:处理重复执行的查询;Recordset对象:获取数据库。

1、引用ADO库

       使用预处理指令#import,在stdAfx.h头文件里进入ADO库文件(注意:不能放在stdAfx.h的开头,而应该放在所有include指令的后面,否则在编译时会出错)

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

2、初始化OLE/COM库环境,在调用ADO前,必须初始化OLE/COM库环境(假设创建StudentDlg)

        在StudentDlg.h文件的public中,定义ADO连接、命令、记录集变量指针

            _ConnectionPtr m_pCon;

            _CommandPtr m_pCom;

            _RecordsetPtr m_pRec;

        在StudengtDlg.Cpp的成员函数::OnInitDialog中添加如下代码:

            ::CoInitialize(NULL);              //初始化COM库

            m_pCon.CreateInstance (__uuidof(Connection));//创建连接对象(注意是两个_)

3、连接数据库

        在StudengtDlg.Cpp的成员函数::OnInitDialog中接着添加如下代码:

         (1) _bstr_t strConnect="Driver={SQL Server};Server=XU-PC\\MSSQL2005;Database=Student;Uid=sa;Pwd=123;";//构造连接字符串

                 //_bstr_t   是一个封装了char*和wchar_t*之间相关的操作,已方便在使用com对象时的字符串操作。

          pConn->Open(strConnect,"","",adConnectUnspecified);//连接数据库

           (2)try

                 {

                    m_pConnection->Open ("driver={SQL Server};Server=XU-PC\\MSSQL2005;Database=Student;UID=sa;PWD=xsl4283294","","",adModeUnknown)

                 //XU-PC\\MSSQL2005是计算机名,注意是双斜线,UID="";PWD=""写入相应的用户名和密码,这里使用SQLServer验证。adModeUnknown:权限尚未

                 //设置或不能确定权限。adConnectUnspecified:同步打开连接。

                  }    

                 catch(_com_error_e)   //try.....catch来捕获错误消息

                  {

                     AfxMessagebox("数据库连接失败");

                     return FALSE ;

                   } 

4、获取记录集    

         在StudengtDlg.Cpp的成员函数::OnInitDialog中添加如下代码:     

           m_pRec.CreateInstance(__uuidof(Recordset));

           try

            {

             m_pRec->Open("SELECT * FROM  s",m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

             // m_pConnection.GetInterfacePtr():获取库接库的IDispatch指针

             }

          catch(_com_error *e)   

            {

               AfxMessageBox(e->ErrorMessage());


            }
数据库的连接与创建算是成功。接下来使用SQL语句进行添加、修改、删除。

SQL Server 2005 操作和注意:

          (1)打开SQL Server Configuration Manager,开启服务器(有时忘了开启就会提示不能连接到数据库。

           (2)打开SQL Server 2005,连接到服务器,Server对应Server name,Uid=sa;Pwd对应Password。

           (3)在Student中创建表,并备份,Student右键->Tasks->Back UP Datebase->选择保存位置。

          VC++6.0 使用ADO动态链接SQL Server 2005数据库VC++6.0 使用ADO动态链接SQL Server 2005数据库