Beispiel #1
0
 static public List <ItemTy> ObjectList <ItemTy>(
     CommandFill FillCmd, params object[] args)
     where ItemTy : Robot, new()
 {
     return(PerformOperation <List <ItemTy> >(
                Helpers.CnnStr(), ReadObjectList <ItemTy>, FillCmd, args));
 }
Beispiel #2
0
 static public ItemTy SingleObject <ItemTy>(string CnnStr,
                                            CommandFill FillCmd, params object[] args)
     where ItemTy : Robot, new()
 {
     return(PerformOperation <ItemTy>(
                CnnStr, ReadSingleObject <ItemTy>, FillCmd, args));
 }
Beispiel #3
0
        static private ItemTy PerformOperation <ItemTy>(
            string CnnStr,
            PerformRead <ItemTy> ReadData,
            CommandFill FillCmd,
            object[] args)
        {
            SqlConnection  cn   = new SqlConnection(CnnStr);
            ItemTy         rval = default(ItemTy);
            SafeDataReader dr   = null;
            SqlTransaction tr;

            cn.Open();
            tr = cn.BeginTransaction(IsolationLevel.ReadCommitted);

            try
            {
                SqlCommand cmd = cn.CreateCommand();
                cmd.Transaction = tr;

                FillCmd(cmd, args);

                dr = new SafeDataReader(cmd.ExecuteReader());

                rval = ReadData(dr);

                dr.Close();
                tr.Commit();
            }
            catch
            {
                if ((dr != null) && !dr.IsClosed)
                {
                    dr.Close();
                }

                tr.Rollback();
                throw;
            }
            finally
            {
                if ((dr != null) && !dr.IsClosed)
                {
                    dr.Close();
                }

                cn.Close();
            }

            return(rval);
        }
Beispiel #4
0
 static public List <ItemTy> ScalarList <ItemTy>(
     CommandFill FillCmd, params object[] args)
 {
     return(PerformOperation <List <ItemTy> >(
                Helpers.CnnStr(), ReadScalarList <ItemTy>, FillCmd, args));
 }
Beispiel #5
0
 static public ItemTy Scalar <ItemTy>(
     CommandFill FillCmd, params object[] args)
 {
     return(PerformOperation <ItemTy>(
                Helpers.CnnStr(), ReadSingleScalar <ItemTy>, FillCmd, args));
 }