SYBASE ODBC .Net 内核

SYBASE ODBC .Net CORE

1.有没有人成功地使用 ODBC 从 c# 到 Sybase ASE?
2。或者更好,有没有人成功地将 Sybase ASE 与 .NET Core 一起使用?

我正在使用 .NET Core 1.1,而当前的 Sybase.AdoNet4.AseClient.dll 不起作用,所以我正在尝试使用 ODBC。我尝试使用两个 ODBC 包:

两者都可以很好地处理内联查询,并且都可以很好地调用不带参数的 Sybase 存储过程,但是在尝试将参数发送到 sp 时,两者都有 相同的确切 错误,需要参数的地方。

这是一个片段:

command.CommandType = CommandType.StoredProcedure;
command.CommandText = "XX_GetLookUp";
command.Parameters.Add("@Type", OdbcType.VarChar).Value = "ACC";
using (var reader = command.ExecuteReader()) {
    ...
}

我在 command.ExecuteReader() 期间不断收到以下错误: System.Data.Odbc.OdbcException: '错误 [ZZZZZ] [SAP][ASE ODBC 驱动程序][Adaptive Server Enterprise]过程 iKYC_GetLookUp 需要未提供的参数 @Type。

我尝试使用带和不带@的Type,但每次都产生相同的错误。

我也尝试了其他几种口味:

以上每个生成:System.Runtime.InteropServices.SEHException:'External component has thrown an exception.'

我也尝试单独构建参数对象,但没有成功(同样的错误,缺少 @Type):

OdbcParameter p = new OdbcParameter();
p.ParameterName = "@Type";
p.DbType = DbType.AnsiString;
p.Direction = ParameterDirection.InputOutput;
p.Value = "ACC";
cmd.Parameters.Add(p);

如前所述,如果我将参数设置为 null,在存储过程中,代码可以正常工作并且数据按预期返回,所以问题似乎与传递的参数有关.

有没有人成功地使用 ODBC 从 c# 到 Sybase ASE? 有人成功地将 Sybase ASE 与 .NET Core 结合使用了吗?

附加信息: 我正在使用 Visual Studio 2017 (v 15.2)。核心 1.1 并使用 Sybase ASE 16.0 sp2。

我们遇到了类似的问题 - 我们想在 AWS 无服务器堆栈上使用 ADO.NET - 这只是 .NET Core。我们提出了 SAP 请求支持 .NET Core 的问题,但没有得到任何回复。

我们尝试使用 ODBC,但无法在我们的存储过程中使用 return 值,于是硬着头皮为 ASE 15 编写了我们自己的 ADO.NET Core DbProvider- 16.

它在 .NET Core 中本地实现了 TDS 5 协议,并且在我们所有的测试用例中优于 SAP/Sybase 实现。

https://github.com/DataAction/AdoNetCore.AseClient

wiki 上有 运行 单元、集成和基准测试的文档。

大部分功能已实现,欢迎请求和反馈。支持 .NET 4.6 和 .NET Core 1.0、1.1、2.0 和 2.1。

我们使用 AWS Lambda 和 .NET Core 2.0 进行了这项工作。