ODBC 多语句时如果获取真正的错误信息?
类似下面的代码使用 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'
但我执行的是多语句,这个有办法得到真正的错误只许上么?(通过网络抓包可以看到错误信息是有包含在返回的网络包里面的)