From 06d93bc1bceca90b8055f19833a1de505f767086 Mon Sep 17 00:00:00 2001 From: David Ellingsworth Date: Tue, 11 Jun 2024 09:03:35 -0400 Subject: [PATCH] GH-3530: The SAP SQL Anywhere driver does not support the DbDataReader.GetChar method, wrap it in the NoCharDbDataReader. --- .../Async/Driver/SapSQLAnywhere17Driver.cs | 29 +++++++++++++++++++ .../Driver/SapSQLAnywhere17Driver.cs | 14 +++++++-- 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 src/NHibernate/Async/Driver/SapSQLAnywhere17Driver.cs diff --git a/src/NHibernate/Async/Driver/SapSQLAnywhere17Driver.cs b/src/NHibernate/Async/Driver/SapSQLAnywhere17Driver.cs new file mode 100644 index 00000000000..8244121c9c6 --- /dev/null +++ b/src/NHibernate/Async/Driver/SapSQLAnywhere17Driver.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by AsyncGenerator. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + +using System.Data.Common; +using NHibernate.AdoNet; + +namespace NHibernate.Driver +{ + using System.Threading.Tasks; + using System.Threading; + public partial class SapSQLAnywhere17Driver : ReflectionBasedDriver + { + + public override async Task ExecuteReaderAsync(DbCommand command, CancellationToken cancellationToken) + { + cancellationToken.ThrowIfCancellationRequested(); + var reader = await (command.ExecuteReaderAsync(cancellationToken)).ConfigureAwait(false); + + return new NoCharDbDataReader(reader); + } + } +} diff --git a/src/NHibernate/Driver/SapSQLAnywhere17Driver.cs b/src/NHibernate/Driver/SapSQLAnywhere17Driver.cs index cac8b8bed14..25696c78f54 100644 --- a/src/NHibernate/Driver/SapSQLAnywhere17Driver.cs +++ b/src/NHibernate/Driver/SapSQLAnywhere17Driver.cs @@ -1,6 +1,9 @@ -namespace NHibernate.Driver +using System.Data.Common; +using NHibernate.AdoNet; + +namespace NHibernate.Driver { - public class SapSQLAnywhere17Driver : ReflectionBasedDriver + public partial class SapSQLAnywhere17Driver : ReflectionBasedDriver { public SapSQLAnywhere17Driver() : base("Sap.Data.SQLAnywhere", "Sap.Data.SQLAnywhere.v4.5", "Sap.Data.SQLAnywhere.SAConnection", "Sap.Data.SQLAnywhere.SACommand") @@ -14,5 +17,12 @@ public SapSQLAnywhere17Driver() public override string NamedPrefix => ":"; public override bool RequiresTimeSpanForTime => true; + + public override DbDataReader ExecuteReader(DbCommand command) + { + var reader = command.ExecuteReader(); + + return new NoCharDbDataReader(reader); + } } }