Mon*_*Man 10 asp.net odbc sybase-ase asp.net-core
1.有没有人成功地将c#中的ODBC用于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()) {
...
}
Run Code Online (Sandbox Code Playgroud)
我在命令期间不断收到以下错误.ExecuteReader(): System.Data.Odbc.OdbcException:'ERROR [ZZZZZ] [SAP] [ASE ODBC驱动程序] [Adaptive Server Enterprise]过程iKYC_GetLookUp需要参数@Type,这不是提供.
我试图使用带有和没有@的Type但每个都生成相同的错误.
我也尝试了其他几种口味:
上面每个生成的位置:System.Runtime.InteropServices.SEHException:'外部组件抛出异常.'
我也尝试将参数对象分开构建,没有运气(同样的错误,缺少@Type):
OdbcParameter p = new OdbcParameter();
p.ParameterName = "@Type";
p.DbType = DbType.AnsiString;
p.Direction = ParameterDirection.InputOutput;
p.Value = "ACC";
cmd.Parameters.Add(p);
Run Code Online (Sandbox Code Playgroud)
如前所述,如果我将参数设置为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,但无法让它与我们的存储过程的返回值一起工作,所以硬着头皮为 ASE 15-16 编写了我们自己的 ADO.NET Core DbProvider。
它在 .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 来完成这项工作。
| 归档时间: |
|
| 查看次数: |
766 次 |
| 最近记录: |