//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// DataHelpers.SQL satellite library | Author: Sergei Y.Kitáev
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
using System;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using u = user_rtx;

namespace DataHelpers.SQL {

partial class HSP {
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/// <exception cref="InvalidCastException" />
/// <exception cref="ObjectDisposedException" />
/// <exception cref="HDatabaseException" />
[u.async_local]
public static Task<List<RSet_Item>?> DoReaderCommandVerifyN_A<RSet_Item>(
   HSPResultParameters resultParameters, SqlCommand command )
where RSet_Item: new() =>
   NakedDoReaderCommandX_A<RSet_Item>(
      delegate{ VerifyResultParameters( resultParameters ); },
      command );

/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[u.async_local]
public static Task<List<RSet_Item>?> DoReaderCommandVerifyN_A<RSet_Item>(
   HSPResultParameters resultParameters, string commandText )
where RSet_Item: new() =>
   NakedDoReaderCommandX_A<RSet_Item>(
      delegate{ VerifyResultParameters( resultParameters ); },
      commandText );
/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[u.async_local]
public static Task<List<RSet_Item>?> DoReaderCommandVerifyN_A<RSet_Item>(
   HSPResultParameters resultParameters,
   string commandText, params SqlParameter[] sqlParams )
where RSet_Item: new() =>
   NakedDoReaderCommandX_A<RSet_Item>(
      delegate{ VerifyResultParameters( resultParameters ); },
      commandText, sqlParams );

//--------------------------------------------------------------------------------------------------

/// <exception cref="InvalidCastException" />
/// <exception cref="HDatabaseException" />
[u.async_local]
public static Task<List<RSet_Item>?> DoReaderCommandVerifyFmtN_A<RSet_Item>(
   HSPResultParameters resultParameters,
   string commandTextFmt, params object?[] args )
where RSet_Item: new() =>
   NakedDoReaderCommandFmtX_A<RSet_Item>(
      delegate{ VerifyResultParameters( resultParameters ); },
      commandTextFmt, args );

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
} // HSP

} // DataHelpers.SQL
