You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kylin.apache.org by killyu <ki...@foxmail.com> on 2019/03/22 08:53:08 UTC
通过ODBC获取所有可用的表和表元数据
您好,
我编写C#程序时使用ODBC能成功连接Kylin,但尝试使用以下代码获取表列表时发生错误:
var odbcConnection = new OdbcConnection(ConnectionString);
using (odbcConnection)
{
odbcConnection.Open();
var table = odbcConnection.GetSchema("Tables");
foreach (DataRow tableRow in table.Rows)
{
foreach (var column in tableRow.ItemArray)
{
Console.Write(column + ", ");
}
Console.WriteLine();
}
}
发生错误的行为var table = odbcConnection.GetSchema("Tables");错误信息为
Arithmetic operation resulted in an overflow.
at System.Data.Odbc.OdbcDataReader.BuildMetaDataInfo()
at System.Data.Odbc.OdbcDataReader.GetSchemaTable()
at System.Data.Odbc.OdbcMetaDataFactory.NewDataTableFromReader(IDataReader reader, Object[]& values, String tableName)
at System.Data.Odbc.OdbcMetaDataFactory.DataTableFromDataReader(IDataReader reader, String tableName)
at System.Data.Odbc.OdbcMetaDataFactory.GetTablesCollection(String[] restrictions, OdbcConnection connection, Boolean isTables)
at System.Data.Odbc.OdbcMetaDataFactory.PrepareCollection(String collectionName, String[] restrictions, DbConnection connection)
at System.Data.ProviderBase.DbMetaDataFactory.GetSchema(DbConnection connection, String collectionName, String[] restrictions)
at System.Data.Odbc.OdbcConnection.GetSchema(String collectionName, String[] restrictionValues)
at KylinConnectTest.Program.Main(String[] args) in C:\vsprojects\temp\Test\MysqlConnectorTest\KylinConnectTest\Program.cs:line 27
而当使用odbcConnection.GetSchema();时能正确运行。
请问这种方式是否可行?或者能否使用其它方式获取所有表信息?
Re: 通过ODBC获取所有可用的表和表元数据
Posted by ShaoFeng Shi <sh...@apache.org>.
Less people know how to debug ODBC; I'm afraid no help can give to you.
Best regards,
Shaofeng Shi 史少锋
Apache Kylin PMC
Email: shaofengshi@apache.org
Apache Kylin FAQ: https://kylin.apache.org/docs/gettingstarted/faq.html
Join Kylin user mail group: user-subscribe@kylin.apache.org
Join Kylin dev mail group: dev-subscribe@kylin.apache.org
killyu <ki...@foxmail.com> 于2019年3月22日周五 下午4:53写道:
> 您好,
> 我编写C#程序时使用ODBC能成功连接Kylin,但尝试使用以下代码获取表列表时发生错误:
> var odbcConnection = new OdbcConnection(ConnectionString);
> using (odbcConnection)
> {
> odbcConnection.Open();
> var table = odbcConnection.GetSchema("Tables");
>
>
> foreach (DataRow tableRow in table.Rows)
> {
> foreach (var column in tableRow.ItemArray)
> {
> Console.Write(column + ", ");
> }
>
>
> Console.WriteLine();
> }
>
> }
> 发生错误的行为var table = odbcConnection.GetSchema("Tables");错误信息为
> Arithmetic operation resulted in an overflow.
> at System.Data.Odbc.OdbcDataReader.BuildMetaDataInfo()
> at System.Data.Odbc.OdbcDataReader.GetSchemaTable()
> at
> System.Data.Odbc.OdbcMetaDataFactory.NewDataTableFromReader(IDataReader
> reader, Object[]& values, String tableName)
> at
> System.Data.Odbc.OdbcMetaDataFactory.DataTableFromDataReader(IDataReader
> reader, String tableName)
> at System.Data.Odbc.OdbcMetaDataFactory.GetTablesCollection(String[]
> restrictions, OdbcConnection connection, Boolean isTables)
> at System.Data.Odbc.OdbcMetaDataFactory.PrepareCollection(String
> collectionName, String[] restrictions, DbConnection connection)
> at System.Data.ProviderBase.DbMetaDataFactory.GetSchema(DbConnection
> connection, String collectionName, String[] restrictions)
> at System.Data.Odbc.OdbcConnection.GetSchema(String collectionName,
> String[] restrictionValues)
> at KylinConnectTest.Program.Main(String[] args) in
> C:\vsprojects\temp\Test\MysqlConnectorTest\KylinConnectTest\Program.cs:line
> 27
>
> 而当使用odbcConnection.GetSchema();时能正确运行。
> 请问这种方式是否可行?或者能否使用其它方式获取所有表信息?