首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从批处理语句中获取异常详细信息

从批处理语句中获取异常详细信息
EN

Stack Overflow用户
提问于 2010-11-16 18:04:55
回答 1查看 500关注 0票数 0

我有一个通过ODBC驱动程序连接到MySQL 5服务器的应用程序。有时,我使用准备好的/参数化的批处理语句来轻松地在服务器上移动数据。这工作得很好,直到出现问题的那一刻...

代码语言:javascript
复制
INSERT INTO blabla SELECT blablabla;
INSERT INTO blabla SELECT bliblibli;
UPDATE blabla;
// etc.

现在,如果这条语句出错,我会得到一个非常无用的异常:

代码语言:javascript
复制
System.Data.Odbc.OdbcException
ERROR [HY000] [MySQL][ODBC 3.51 Driver][mysqld-5.0.26-pro-nt]unhandled error from mysql_next_result()
   at System.Data.Odbc.OdbcDataReader.NextResult(Boolean disposing, Boolean allresults)
   at System.Data.Odbc.OdbcDataReader.NextResult()
   at System.Data.Odbc.OdbcDataReader.FirstResult()
   at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader, Object[] methodArguments, SQL_API odbcApiMethod)
   at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader)
   at System.Data.Odbc.OdbcCommand.ExecuteNonQuery()
   at MyApp.MyClass.MyData.WhyAreYouReadingThis()

InnerExceptions为空。

我能否提取有关该问题的更多信息?F.e.如果我没有使用批处理语句,我会得到确切的错误消息,但如果我使用了批处理语句,就不会得到确切的错误消息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-16 19:03:14

不确定这是否真的能解决您的问题(在DB exceptions中有更多详细信息),但是您是否考虑过使用MySQL的.Net连接器(也就是MySQL的ADO.NET驱动程序)而不是ODBC驱动程序?

您可以从这里下载连接器:http://www.mysql.com/products/connector/

更新:

我在MSDN中查看了OdbcException类。它似乎有一个名为Errors的属性,该属性包含一个OdbcError类的集合。这些类的任何实例都应该有每个遇到的错误的描述。如果有帮助,请让我知道。

Update2:

似乎大约一年前,一个与您所面临的问题相关的bug被提交给了MySql团队:http://bugs.mysql.com/bug.php?id=49466

这个错误似乎还没有修复,所以您在.Net应用程序中对此无能为力。

在bug描述中,有人说这是一个ODBC连接器特有的问题。我不能百分之百地确定是不是这样。如果您切换到.Net连接器,也请发布一条消息,让我们知道这是否解决了问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4192966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档