职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 446|回复: 0

VC++数据库通用模块:公用模块设计

[复制链接]
江南枫 发表于 2011-9-26 10:41 | 显示全部楼层 |阅读模式
  在整个系统中,数据库连接部分是各个模块都需要的,因此在公用模块中进行数据库的连接设计。在系统的App头文件中定义一个数据库连接对象 c8ab0bcec720866eb700c8e8.jpg
代码如下:
  _ConnectionPtr m_pConnection;
  在系统App文件的初始化函数中连接数据库,代码如下:
  BOOL CHotelManageSysApp::InitInstance()
  {
  AfxEnableControlContainer();
  //初始化COM口
  AfxOleInit();
  //连接数据库
  HRESULT hr;
  try
  {
  //创建Connection对象
  hr = m_pConnection.CreateInstance("ADODB.Connection"); ac754782b1d787f50cf4d29c.jpg

  //如果创建成功,则建立连接
  if(SUCCEEDED(hr))
  {
  //设置超时时间为8秒
  m_pConnection->ConnectionTimeout=8;
  //设置游标
  m_pConnection->PutCursorLocation(adUseClient); 1f5694822e601dc7f603a69e.jpg

  //打开数据库HotelManageSys
  hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data
  Source=HotelManageSys.mdb;","","",adModeUnknown);
  }
  }
  //以下为自动生成的程序,由于篇幅所限,此处省略 246cca2acf5663cc033bf69f.jpg

    }
  关闭程序时,自动断开已经连接上的数据库,代码如下:
  int CHotelManageSysApp::ExitInstance()
  {
  //检测数据库状态,如果已经打开则关闭数据库
  if(m_pConnection->State)
  m_pConnection->Close(); 9319cf0989bacbd5d1581b98.jpg

  //释放连接
  m_pConnection.Release();
  return CWinApp::ExitInstance();
  }
  可以看到,公用模块的设计包括数据库的连接、打开以及关闭。

7787b9efef7eca41fdfa3c99.jpg
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-26 08:48 , Processed in 0.150326 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表