ODBC 多语句时如果获取真正的错误信息?

weixin_38073387 2017-02-14 02:57:44
类似下面的代码使用 ODBC 访问 mysql 取数据,如何才能取得堤的错误信息?
using System;
using System.Data.Odbc;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
using (OdbcConnection conn = new OdbcConnection("Driver={MySQL ODBC 5.2 Unicode Driver};multi_statements=1;erver=172.16.0.148;uid=root;pwd=1234;"))
{
conn.Open();
using(OdbcCommand cmd = new OdbcCommand("select 1;select a;",conn))
{
using (OdbcDataReader reader = cmd.ExecuteReader())
{
try
{
Console.WriteLine(reader.Read());
Console.WriteLine(reader.NextResult());
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Console.ReadLine();
}
}
conn.Close();
}
}
}
}

输出的错误信息是:
ERROR [HY000] [MySQL][ODBC 5.2(w) Driver][mysqld-5.7.16-ndb-7.5.4-cluster-gpl-log]unhandled error from mysql_next_result()
如果改成单语句 select a;,则可以得到真正的错误:
ERROR [42S22] [MySQL][ODBC 5.2(w) Driver][mysqld-5.7.16-ndb-7.5.4-cluster-gpl-log]Unknown column 'a' in 'field list'
但我执行的是多语句,这个有办法得到真正的错误只许上么?(通过网络抓包可以看到错误信息是有包含在返回的网络包里面的)
...全文
16 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧