您的位置:首页 > 其它

VC 6.0 通过ADO 远程连接VS2008

2012-11-09 15:34 176 查看
步骤及代码如下:

1、首先在Stdafx.h头文件中引入ADO库,代码如下:

//引入ADO库

#import "C:\Program Files\common files\system\ado\msado15.dll" no_namespace rename("EOF","EndOfFile") rename("BOF","FirstOfFile")    

//rename("EOF","EndOfFile")表示将"EOF"重新定义为"EndOfFile"

2、在需要连接数据库的.CPP文件中加入数据库操作代码: 

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

 _ConnectionPtr  m_pstartconn;                //连接对象指针

 m_pstartconn.CreateInstance(__uuidof(Connection)); //初始化对象

 _RecordsetPtr pRecordsetstart;             //数据集对象指针

 pRecordsetstart.CreateInstance(__uuidof(Recordset));   //初始化数据集指针

//连接数据库的字符串

 CString strConnect= "Provider=SQLOLEDB.1;Password=123;Persist Security Info=False;User ID=123;Initial Catalog=datatest;Data Source=10.1.8.221";

注释:Provider字段指 打开数据库用哪种方式连接,Password指数据库的认证密码,Persist Security Info指是否保存安全信息,User ID指数据库的认证用户名,Initial Catalog指数据库的名称或者目录,Data Source指远程的数据库(服务器)IP地址

 

下面是有两种打开数据库方式,一个是以m_pstartconn打开数据库,另一个以pRecordsetstart连接数据库,实际操作可以任选其一

1>以m_pstartconn打开数据库:

try

    {

        if (m_pConnection->State)

        {

            m_pConnection->Close();

        }

        // 设置超时时间为3秒钟

        m_pConnection->PutConnectionTimeout(3);

        m_pConnection->Open(_bstr_t(strConnect),"","",adModeUnknown);

       }

    catch(_com_error e)

    {

         CString strmessage;

        strmessage.FormatMessage("数据库连接失败!",e.Description());

        AfxMessageBox(strmessage);

     }

2>下面是以pRecordsetstart打开数据库并连接f_test_tb表及异常处理:

 try

    {

        if (m_pstartconn->State)

        {

            m_pstartconn->Close();

        }

        m_pstartconn->PutConnectionTimeout(5);                     // 设置超时时间为5秒钟

       pRecordsetstart->Open("select * from f_test_tb", _bstr_t(strConnect),

      adOpenDynamic, adLockOptimistic, adCmdUnknown);        //打开数据库中的f_test_tb表,得到数据集,并赋给pRecordsetstart

      }

    catch(_com_error e)

    {

       CString strmessage;

       strmessage.FormatMessage("数据库连接失败!",e.Description());

        AfxMessageBox(strmessage);

    }

 

3、上面连接数据库的步骤已经完成,下面是对数据库表的操作:

 //插入数据

  CString strSQL = "insert into f_data(order,pn,testname,testvalue) values('312','GS','wcd,'30')";//插入字符串

  pRecordsetftest->AddNew();

  pRecordsetftest->PutCollect("order",12); //插入列数据,order指表中的字段,12指插入此列的数据

  pRecordsetftest->PutCollect("pn",34); //插入列数据,pn指表中的字段,34指插入此列的数据

  pRecordsetftest->Update(); //更新数据库表

 

   //获得数据库表的数据:

    CString strpn=((_variant_t)pRecordsetstart->GetCollect("pn")).bstrVal;  //pn 指表中的字段,获取到的数据赋给变量strpn。  

  // 删除数据库的数据:

    CString strpn=((_variant_t)pRecordsetstart->GetCollect("pn")).bstrVal;  //pn 指表中的字段,获取到的数据赋给变量strpn,再删除

    pRecordsetstart->Delete(adAffectCurrent);

    pRecordsetstart.->Update();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: