网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
封装ADO访问数据库的两个类
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
lueStr(char* cVal,CString strIndex,int nFieldLen=-1);
GetValueLong(long *lVal, LPCSTR lpszIndex);
BOOL GetValueFloat(float* fVal,CString strIndex);

BOOL GetValueStr(CString& str,LPCSTR lpszFieldName,int nFieldLen=-1);
BOOL GetValueStr(CString& str,UINT nFieldIndex,int nFieldLen=-1);
BOOL GetValueStr(CString& str,_variant_t &vIndex,int nFieldLen=-1);

// 判断值是否有效,是否为NULL
BOOL VerifyVTData(_variant_t& value);
BOOL VerifyVTData(char* pData);
protected:
_RecordsetPtr* m_prsThis;
_ConnectionPtr* m_pConn;
void ReportError();

};

#endif // _BBADOCONNECT_H







////CPP文件

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CBBAdoConnection::CBBAdoConnection()
{
   m_pConn=NULL;
}

_ConnectionPtr* CBBAdoConnection::GetConnection()
{
return m_pConn;
}

CString CBBAdoConnection::GetConnString()
{
return m_szConnString;
}

CBBAdoConnection::~CBBAdoConnection()
{
// 关比连接
CloseConnect();
}

BOOL CBBAdoConnection::OpenConnection(char *sConnString,BOOL bReOpen /*=FALSE*/)
{

// 不需重新打开
if(!bReOpen)
{
  if(m_pConn !=NULL && ((*m_pConn)->State!=adStateClosed))
   return TRUE;  
}

VERIFY(sConnString);
strcpy(m_szConnString,sConnString);

try
{
  m_pConn =new _ConnectionPtr;
  m_pConn->CreateInstance(__uuidof(Connection));
  if(m_pConn==NULL)
   return FALSE;
  HRESULT hr=(*m_pConn)->Open((char*)sConnString,"","",-1);  
  if(FAILED(hr))
   return FALSE;  
  return TRUE;
}
catch(_com_error)
{
  ReportError(ErrFormOpenConnsction);
  return FALSE;
}
catch()
{
  #ifdef _DEBUG // 调试时显示相应的错误信息
   MessageBox(NULL,"数据库连接未处理的异常!","连接失败",MB_OK|MB_ICONINFORMATION);
  #else
   MessageBox(NULL,"连接数据失败,请检查网络和数据库设置是否正确","连接失败",MB_OK|MB_ICONINFORMATION);
  #endif
  return FALSE;
}
SetConnTimeOut(5);
}

BOOL CBBAdoConnection::OpenRecordset(const char *sSQL, _RecordsetPtr *rs, char *sConnString)
{
// rs=new _RecordsetPtr;
VERIFY(sSQL);
try
{  

  if((m_pConn==NULL)||((*m_pConn)->State==adStateClosed))
  {
   int n=(*m_pConn)->State;
   if(sConnString!=NULL)
   {
    if(!OpenConnection(sConnString))
     return FALSE;
   }
   // 尝试连接数据库
   else
   {
    //
    // if(!OpenConnection(m_szConnString))
    // return FALSE;
    // MessageBox(NULL,"数据库连接已经断开,请重新连接!","连接问题",MB_OK|MB_ICONINFORMATION);  
&nbs

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号