新Visual C++应用开发与实践 教学课件 刘乃琦_ VC 第7章 数据库操作技术.pptVIP

  • 4
  • 0
  • 约2.96万字
  • 约 112页
  • 2016-10-26 发布于广东
  • 举报

新Visual C++应用开发与实践 教学课件 刘乃琦_ VC 第7章 数据库操作技术.ppt

为了简化程序的操作,在使用ADO对象时可以将其封装到类中。这样做的好处是在程序的不同模块中操作数据库时,只要引用封装类的头文件,即可使用封装过的ADO对象。 在此封装了一个ADOConn类,该类的主要功能是完成数据库的打开和关闭,以及记录集的打开与关闭操作。 7.4.7 对数据库对象的简单封装 ADOConn类的头文件如下: class ADOConn { public: //添加一个指向Connection对象的指针 _ConnectionPtr m_pConnection; //添加一个指向Recordset对象的指针 _RecordsetPtr m_pRecordset; public: ADOConn(); virtual ~ADOConn(); //初始化--连接数据库 void OnInitADOConn(); //执行查询 _RecordsetPtr GetRecordSet(_bstr_t bstrSQL); //执行SQL语句 BOOL ExecuteSQL(_bstr_t bstrSQL); //断开数据库连接 void ExitConnect(); }; 接下来介绍各个成员函数是如何实现的。 (1)首先介绍ADO类中用于连接数据库的成员函数OnInitADOConn,在该函数中调用ADO连接对象的Open方法连接数据库。代码如下: void ADOConn::OnInitADOConn() { //初始化OLE/COM库环境 ::CoInitialize(NULL); try { //创建connection对象 m_pConnection.CreateInstance(ADODB.Connection); //设置连接字符串 _bstr_t strConnect=Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=vcjsdq;Data Source=.; //SERVER和UID,PWD的设置根据实际情况来设置 m_pConnection-Open(strConnect,,,adModeUnknown); } //捕捉异常 catch(_com_error e) { AfxMessageBox(e.Description()); //显示错误信息 }} (2)GetRecordset成员函数用来打开记录集,在该函数中调用ADO记录集对象的Open方法打开记录集。代码如下: _RecordsetPtr ADOConn::GetRecordSet(_bstr_t bstrSQL) { try { //连接数据库,如果connection对象为空,则重新连接数据库 if(m_pConnection==NULL) OnInitADOConn(); //创建记录集对象 m_pRecordset.CreateInstance(__uuidof(Recordset)); //取得表中的记录 m_pRecordset-Open(bstrSQL,m_pConnection.GetInterfacePtr(), adOpenDynamic,adLockOptimistic,adCmdText); } catch(_com_error e) { e.Description(); } //返回记录集 return m_pRecordset; } (3)CloseRecordset成员函数用来关闭记录集,代码如下: void ADOConn::CloseRecordset() { if(m_pRecordset-GetState() == adStateOpen) //判断当前的记录集状态 m_pRecordset-Close(); //关闭记录集 } (4)ExitConn成员函数用来关闭数据库连接,代码如下: void ADOConn::ExitConnect() { //关闭记录集和连接 if(m_pRecordset!=NULL) m_pRecordset-Close(); m_pConnection-Close(); } (5)ExecuteSQL成员函数用来执行不返回记录集的SQL语句,如insert、Upd

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档