dotnetcore / FreeSql

🦄 .NET aot orm, C# orm, VB.NET orm, Mysql orm, Postgresql orm, SqlServer orm, Oracle orm, Sqlite orm, Firebird orm, 达梦 orm, 人大金仓 orm, 神通 orm, 翰高 orm, 南大通用 orm, 虚谷 orm, 国产 orm, Clickhouse orm, QuestDB orm, MsAccess orm.
http://freesql.net
MIT License
4.02k stars 841 forks source link

人大金仓数据库KingbaseES连接异常 #1808

Open Mcgrady2009 opened 1 month ago

Mcgrady2009 commented 1 month ago

问题描述及重现代码:

运行代码提示异常:【主库】Status unavailable, waiting for recovery. 53300: 对不起, 已经有太多的客户

var dt = db.Ado.ExecuteDataTable(strSql);

数据库版本

V009R001C001B0025

安装的Nuget包

"FreeSql.Provider.KingbaseES" Version="3.2.825"

.net framework/. net core? 及具体版本

.net core 8.0

2881099 commented 1 month ago

声明方式不对,请使用单例

Mcgrady2009 commented 1 month ago

声明方式不对,请使用单例

IFreeSql db = builder.Build();
var dt = db.Ado.ExecuteDataTable(strSql);

是单例。

Mcgrady2009 commented 1 month ago

3.2.825使用的Kdbndp版本8.6.5.1208,官网最新版本8.3.712.

Mcgrady2009 commented 1 month ago

直接使用kdbndp查询

using (var conn = OpenConnection())
{
    var ds = new DataTable();

    var da = new Kdbndp.KdbndpDataAdapter(strSql, conn);
    da.MissingSchemaAction = MissingSchemaAction.Add;
    da.Fill(ds);
}

连接不报异常,但是会有异常提示The field 'flight_day' has type 'sys.date', which is currently unknown to Kdbndp. You can retrieve it as a string by marking it as unknown, please see the FAQ. 应该还是kdbndp版本的问题?(FreeSql 数据库实现,基于 人大金仓数据库 V008R003/V008R006 Ado.Net (Kdbndp))是不是目前不支持V009R001C001B0025版本。

2881099 commented 1 month ago

v009 要看官方是否有大的改动。

你可以尝试安装 FreeSql.Provider.KingbaseSE 之后,再安装最新的 kdbndp.dll 覆盖 freesql 所依赖的低版本