MFC中的ADO数据库编程

来源:互联网 发布:photoshop cc 2017 mac 编辑:程序博客网 时间:2024/05/16 10:47

1.导入数据库。#import  "C:\Program Files\Common Files\System\ado\msado15.dll"  no_namespace rename("EOF","REOF")  其中rename是将EOF重新命名为REOF。

2.初始化COM库。使用::CoInitialize(NULL)和CoUnitialize()来对COM库的初始化和结束。在MFC中也可以使用AfxOleInit()来初始化。

3.操作数据库。可以使用三个智能指针_ConnectionPtr,_RecordsetPtr,_CommandPtr来对数据操作。

简单代码实现:

::CoInitialize(NULL);_ConnectionPtr m_pconenction;try{    m_pconnection.CreateInstance(_uuidof(Conenction));   //也可以用m_pconnection.CreateInstance("ADODB.Connection");但不推荐这种方法,该方法可能造成错误!    m_pconnection->Open(..);}catch(_com_error e){    AfxMessageBox(e.Descrption());}_RecordsetPtr m_precordset;try{   m_precordset.CreateInstance(_uuidof(Recordset));//同上可用上面的方法,不推荐。   m_precordset.Open("SQL语句",....)//使用这种方法执行SQL语句,当然还有其他方法;   //也可以使用在在其他两个智能指针使用Excute()来执行SQL语句。}catch(_com_error e){     AfxMessageBox(e.Description());} //提取操作while(!m_precorset->REOF){     _variant_t   var;     var=m_precordset->GetCollect("编号");     list.InsertItem(0,(char *)_bstr_t(var));     .....    m_precordset->MoveNext();//其他移动还有:MoveFirst(),MoveLast(),MovePrevious();Move()等操作}//插入操作m_precordset->AddNew():m_precordset->PutCollect("编号",值);m_precordset->Update();//删除操作m_precordset->Delete(adAffectCurrent);//删除当前记录,可以用几个Move操作来改变当前记录。m_pconnection->Close();m_precordset->Close();::CoUninitialize();


原创粉丝点击