(摘自《Visual C++数据库开发基础与应用》这本书P196-197第7.2.3节 数据库的连接) 在进行MFC ODBC数据库开发的时候,需要引入MFC ODBC数据库类的定义文件afxdb.h,在项目工程的StdAfx.h文件中使用include语句添加该文件,方法如下: #include <afxdb.h> 建立数据库的连接之前需要定义一个CDataBase对象,代码如下:CDataBase m_db; 利用CDataBase类的OpenEx函数建立和数据库的连接。函数的原型如下: virtual BOOL OpenEx( LPCTSTR lpszConnectString, DWORD dwOptions = 0 ); 其中,lpszConnectString是ODBC的连接字符串,连接字符串包含数据源名称、用户名和用户密码。格式为"DSN=Server_Source;UID=123;PWD=abc”,DSN代表ODBC数据源名称,UID代表数据库用户名,PWD代表数据库用户密码。 对于配置的ODBC数据源的MISDB,用户名和用户密码均为dbattend的ODBC连接字符串的格式为"DSN=MISDB;UID=dbattend;PWD=dbattend”。利用CDatabase类的OpenEx函数建立数据库连接的代码如下: //创建连接字符串 CString strConnect; //打开数据库的连接,并且捕获异常 TRY{ m_db.OpenEx(strConnect,CDatabase::noOdbcDialog); } CATCH(CDBException,ex)//处理数据库异常 { AfxMessageBix(ex->m_strError); AfxMessageBix(ex->m_strStateNativeOrigin); } AND_CATCH(CMemoryException,pEx) //处理内存异常 { pEx->ReportError(); AfxMessageBox("memory exception"); } AND_CATCH(CException,e) //处理其他异常 { TCHAR szError[100]; e->GetErrorMessage(szError,100); AfxMessageBox(szError); } END_CATCH 从OpenEx函数的原型中可以看出OpenEx函数可能会抛出CDBException和CMemoryException异常,这些异常必须处理。MFC ODBC数据库类的许多函数在调用时都可能出现异常,可用TRY、CATCH、AND_CATCH、END_CATCH等异常处理宏捕捉并处理这些异常,否则发生异常时,程序会不正常终止,给用户带来不便,甚至带来一定的损失。 |
VC CDataBase异常
最新推荐文章于 2017-09-17 15:11:50 发布