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

namespace DataHelpers.SQL {
//--------------------------------------------------------------------------------------------------

[h_db_orm_type]
public delegate Task<HSPCommandResult> HAsyncSPCommandRoutine();
[h_db_orm_type]
public delegate Task<HSPCommandResultOut<TOutData>> HAsyncSPCommandRoutine<TOutData>()
                                                    where TOutData: class;
[h_db_orm_type]
public delegate Task<HSPResult<TListItem>>
   HAsyncSPRoutine<TListItem>();
[h_db_orm_type]
public delegate Task<HSPResult_2<TList1_Item,TList2_Item>>
   HAsyncSPRoutine_2<TList1_Item,TList2_Item>();
[h_db_orm_type]
public delegate Task<HSPResult_3<TList1_Item,TList2_Item,TList3_Item>>
   HAsyncSPRoutine_3<TList1_Item,TList2_Item,TList3_Item>();
[h_db_orm_type]
public delegate Task<HSPResult_4<TList1_Item,TList2_Item,TList3_Item,TList4_Item>>
   HAsyncSPRoutine_4<TList1_Item,TList2_Item,TList3_Item,TList4_Item>();
[h_db_orm_type]
public delegate Task<HSPResult_5<TList1_Item,TList2_Item,TList3_Item,TList4_Item,TList5_Item>>
   HAsyncSPRoutine_5<TList1_Item,TList2_Item,TList3_Item,TList4_Item,TList5_Item>();

[h_db_orm_type]
public delegate Task<HSPCommandResultRV> HAsyncSPCommandRoutineRV();
[h_db_orm_type]
public delegate Task<HSPCommandResultOutRV<TOutData>> HAsyncSPCommandRoutineRV<TOutData>()
                                                      where TOutData: class;
[h_db_orm_type]
public delegate Task<HSPResultRV<TListItem>>
   HAsyncSPRoutineRV<TListItem>();
[h_db_orm_type]
public delegate Task<HSPResultRV_2<TList1_Item,TList2_Item>>
   HAsyncSPRoutineRV_2<TList1_Item,TList2_Item>();
[h_db_orm_type]
public delegate Task<HSPResultRV_3<TList1_Item,TList2_Item,TList3_Item>>
   HAsyncSPRoutineRV_3<TList1_Item,TList2_Item,TList3_Item>();
[h_db_orm_type]
public delegate Task<HSPResultRV_4<TList1_Item,TList2_Item,TList3_Item,TList4_Item>>
   HAsyncSPRoutineRV_4<TList1_Item,TList2_Item,TList3_Item,TList4_Item>();
[h_db_orm_type]
public delegate Task<HSPResultRV_5<TList1_Item,TList2_Item,TList3_Item,TList4_Item,TList5_Item>>
   HAsyncSPRoutineRV_5<TList1_Item,TList2_Item,TList3_Item,TList4_Item,TList5_Item>();

[h_db_orm_type]
public delegate Task<HSPResultOut<TOutData,TListItem>>
   HAsyncSPRoutineOut<TOutData,TListItem>()
   where TOutData: class;
[h_db_orm_type]
public delegate Task<HSPResultOut_2<TOutData,TList1_Item,TList2_Item>>
   HAsyncSPRoutineOut_2<TOutData,TList1_Item,TList2_Item>()
   where TOutData: class;
[h_db_orm_type]
public delegate Task<HSPResultOut_3<TOutData,TList1_Item,TList2_Item,TList3_Item>>
   HAsyncSPRoutineOut_3<TOutData,TList1_Item,TList2_Item,TList3_Item>()
   where TOutData: class;
[h_db_orm_type]
public delegate Task<HSPResultOut_4<TOutData,TList1_Item,TList2_Item,TList3_Item,TList4_Item>>
   HAsyncSPRoutineOut_4<TOutData,TList1_Item,TList2_Item,TList3_Item,TList4_Item>()
   where TOutData: class;
[h_db_orm_type]
public delegate Task<HSPResultOut_5<TOutData,TList1_Item,TList2_Item,TList3_Item,TList4_Item,
                                             TList5_Item>>
   HAsyncSPRoutineOut_5<TOutData,TList1_Item,TList2_Item,TList3_Item,TList4_Item,TList5_Item>()
   where TOutData: class;

[h_db_orm_type]
public delegate Task<HSPResultOutRV<TOutData,TListItem>>
   HAsyncSPRoutineOutRV<TOutData,TListItem>()
   where TOutData: class;
[h_db_orm_type]
public delegate Task<HSPResultOutRV_2<TOutData,TList1_Item,TList2_Item>>
   HAsyncSPRoutineOutRV_2<TOutData,TList1_Item,TList2_Item>()
   where TOutData: class;
[h_db_orm_type]
public delegate Task<HSPResultOutRV_3<TOutData,TList1_Item,TList2_Item,TList3_Item>>
   HAsyncSPRoutineOutRV_3<TOutData,TList1_Item,TList2_Item,TList3_Item>()
   where TOutData: class;
[h_db_orm_type]
public delegate Task<HSPResultOutRV_4<TOutData,TList1_Item,TList2_Item,TList3_Item,TList4_Item>>
   HAsyncSPRoutineOutRV_4<TOutData,TList1_Item,TList2_Item,TList3_Item,TList4_Item>()
   where TOutData: class;
[h_db_orm_type]
public delegate Task<HSPResultOutRV_5<TOutData,TList1_Item,TList2_Item,TList3_Item,TList4_Item,
                                               TList5_Item>>
   HAsyncSPRoutineOutRV_5<TOutData,TList1_Item,TList2_Item,TList3_Item,TList4_Item,TList5_Item>()
   where TOutData: class;

//--------------------------------------------------------------------------------------------------
} // DataHelpers.SQL
