打印本文 打印本文 关闭窗口 关闭窗口
学习ADO和ODBC访问数据库的一些思路整理
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3445  更新时间:2009/4/23 10:39:20  文章录入:mintao  责任编辑:mintao
”),注意:此处的返回值类型为:_variant_t,这个类型类包含了许多与c++所支持的类型的转换函数,较常用的是与cstring类型的转换(LPCSTR)_bstr_t(_variant_t类型变量)

记录集的增加操作:

确保要操作的记录集打开之后,首先调用m_pRecordset->addnew()addnew之后将自动生成一个供记录集域值使用的新的空记录,来存放即将增加的数据信息,系统将自动执行sqlinsert语句来插入记录。

然后通过设置列属性:putcollect(“列名”,_variant_t &pvar)来设置记录信息

设置之后一定要调用m_pRecordset->update来更新记录集

记录集的修改操作:

修改操作与增加操作类似,唯一不同之处在于不用先调用addnew,而直接将记录集指针移动到需要修改的记录处,执行putcollect操作。

之后再update

记录集的删除操作:

当找到需要删除的记录时,利用m_pRecordset->Delete(adAffectCurrent);可以删除当前的记录。

update即可。

当然,在每次需要对记录集操作之前应当打开需要操作的表的记录集,操作完毕应关闭相应记录集,这样可以保证只声明一个记录集指针,每次只操作一个记录集,可以节约资源。

另外,在修改和删除操作中也可能需要查询满足条件的记录,可以这样实现:

str.Format("select * from STUDENTS where StuID=''''%s''''",m_StuID);            m_pRecordset->Open(str.AllocSysString(),theApp.m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

2.       自己写一个ADOConnection类作为应用程序操作数据库的接口

通过自定义的ADOConnection类封装与应用程序操作数据库的接口(在这个类中应首先声明_connectionptr _recordsetptr指针),这个类中要实现的功能包括:定义ADO库,初始化与ADO的连接,释放连接,初始化记录集(方法1的初始化是在相应类的OnInitDialog()中实现),执行SQL语句

定义ADO库,初始化与ADO的连接,释放连接与方法1一致;

初始化记录集:

_RecordsetPtr & CAdoConnection::GetRecordset(_bstr_t mySql)

{

       try

       {

              if (m_pConnection==NULL)

              {

                     OnInitAdoConneciton();

              }

              m_pRecordset.CreateInstance(_uuidof(Recordset));

              m_pRecordset->Open(mySql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

       }

       catch (_com_error *e)

       {

              AfxMessageBox(e->ErrorMessage());

       }

       return m_pRecordset;

}

执行SQL语句主要使用connection来实现(不同于方法1利用记录集来实现)

bool CAdoConnection::ExecuteSql(_bstr_t mySql)

{ m_pConnection->Execute(mySql,NULL,adCmdText);}

至此,在应用程序中可以通过定义这个ADOConnection的实例来完成相应的操

上一页  [1] [2] [3] [4]  下一页

打印本文 打印本文 关闭窗口 关闭窗口