⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_42798.htm

📁 vc
💻 HTM
字号:
<p>
序号:42798 发表者:redscorpio 发表日期:2003-06-05 22:08:53
<br>主题:在MFC开发的程序中,通过DB-Library开发访问数据库时如何实现错误处理函数
<br>内容:在控制台程序中,可用如下语句实现错误处理:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dberrhandle (err_handler);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbmsghandle (msg_handler);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<BR>&nbsp;&nbsp; int err_handler(PDBPROCESS, INT, INT, INT, LPCSTR, LPCSTR);<BR>int msg_handler(PDBPROCESS, DBINT, INT, INT, LPCSTR, LPCSTR,LPCSTR, BUSMALLINT);<BR>但是,我在MFC中利用该方法时,编译无法通过.说数据转化不一致.<BR>请问高手,如何才能实现错误提示功能.<BR>谢谢<BR><BR>&nbsp;&nbsp;<BR><BR>&nbsp;&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:孤峰 回复日期:2003-06-27 09:16:35
<br>内容:int CSQLDataBase::dbwinErrorHandler(PDBPROCESS dbproc, INT severity, INT errno, INT oserr, LPCSTR dberrstr, LPCSTR oserrstr)<BR>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp; static CString ErrStr;<BR>&nbsp;&nbsp; MessageBox(NULL,dberrstr,(LPSTR)"DB-LIBRARY error",MB_ICONHAND | MB_OK);<BR>&nbsp;&nbsp; MessageBox(NULL,dberrstr,(LPSTR)"DB-LIBRARY error",MB_ICONHAND | MB_OK);<BR>&nbsp;&nbsp; if (oserr != DBNOERR)&nbsp;&nbsp; /* os error */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox(NULL,oserrstr,(LPSTR)"Operating-System error",MB_ICONHAND | MB_OK);<BR><BR>&nbsp;&nbsp; return(INT_CANCEL);&nbsp;&nbsp;/* cancel command */<BR>}<BR>就是这样使用的,先定义错误处理函数,再注册错误处理函数,没什么问题,我以前做过
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:永远有多远 回复日期:2003-07-02 13:19:39
<br>内容:应该是这样的吧:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dberrhandle (err_handler);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbmsghandle (msg_handler);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<BR>int err_handler(PDBPROCESS, INT, INT, INT, LPCSTR, LPCSTR);<BR>int msg_handler(PDBPROCESS, DBINT, INT, INT, LPCSTR, LPCSTR,LPCSTR,DBUSMALLINT);<BR><BR>DBUSMALLINT此处不知是你的笔误还是导致编译不过的原因
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:redscorpio 回复日期:2003-07-02 22:21:43
<br>内容:谢谢二位。<BR>我现在解决了这个问题。主要是由于dberrhandle和dbmsghandle是C函数,而将其定义为类成员后,编译是按照C++函数进行编译,所以编译不会通过。现在,不将其定义为类成员,并用extern "c"加以声明,遂通过。<BR>再次,改写二位。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -