示例#1
0
        /// <summary>Updates a Position record.</summary>
        /// <param name="transaction">Commits or rejects a set of commands as a unit</param>
        /// <param name="rowVersion">The version number of the row</param>
        /// <param name="accountId">The value for the AccountId column.</param>
        /// <param name="securityId">The value for the SecurityId column.</param>
        /// <param name="positionTypeCode">The value for the PositionTypeCode column.</param>
        /// <param name="userData0">The value for the UserData0 column.</param>
        /// <param name="userData1">The value for the UserData1 column.</param>
        /// <param name="userData2">The value for the UserData2 column.</param>
        /// <param name="userData3">The value for the UserData3 column.</param>
        /// <param name="userData4">The value for the UserData4 column.</param>
        /// <param name="userData5">The value for the UserData5 column.</param>
        /// <param name="userData6">The value for the UserData6 column.</param>
        /// <param name="userData7">The value for the UserData7 column.</param>
        public static void Update(AdoTransaction adoTransaction, SqlTransaction sqlTransaction, ref long rowVersion, int accountId, int securityId, int positionTypeCode, object userData0, object userData1, object userData2, object userData3, object userData4, object userData5, object userData6, object userData7)
        {
            // Accessor for the Position Table.
            ServerDataModel.PositionDataTable positionTable = ServerDataModel.Position;
            // Rule #1: Make sure the record exists before updating it.
            ServerDataModel.PositionRow positionRow = positionTable.FindByAccountIdSecurityIdPositionTypeCode(accountId, securityId, positionTypeCode);
            if ((positionRow == null))
            {
                throw new Exception(string.Format("The Position table does not have an element identified by {0}{0}{0}", accountId, securityId, positionTypeCode));
            }
            // Rule #2: Optimistic Concurrency Check
            if ((positionRow.RowVersion != rowVersion))
            {
                throw new System.Exception("This record is busy.  Please try again later.");
            }
            // Apply Defaults
            if ((userData0 == null))
            {
                userData0 = positionRow[positionTable.UserData0Column];
            }
            if ((userData1 == null))
            {
                userData1 = positionRow[positionTable.UserData1Column];
            }
            if ((userData2 == null))
            {
                userData2 = positionRow[positionTable.UserData2Column];
            }
            if ((userData3 == null))
            {
                userData3 = positionRow[positionTable.UserData3Column];
            }
            if ((userData4 == null))
            {
                userData4 = positionRow[positionTable.UserData4Column];
            }
            if ((userData5 == null))
            {
                userData5 = positionRow[positionTable.UserData5Column];
            }
            if ((userData6 == null))
            {
                userData6 = positionRow[positionTable.UserData6Column];
            }
            if ((userData7 == null))
            {
                userData7 = positionRow[positionTable.UserData7Column];
            }
            // Increment the row version
            rowVersion = ServerDataModel.RowVersion.Increment();
            // Update the record in the ADO database.
            positionRow[positionTable.RowVersionColumn] = rowVersion;
            positionRow[positionTable.UserData0Column]  = userData0;
            positionRow[positionTable.UserData1Column]  = userData1;
            positionRow[positionTable.UserData2Column]  = userData2;
            positionRow[positionTable.UserData3Column]  = userData3;
            positionRow[positionTable.UserData4Column]  = userData4;
            positionRow[positionTable.UserData5Column]  = userData5;
            positionRow[positionTable.UserData6Column]  = userData6;
            positionRow[positionTable.UserData7Column]  = userData7;
            adoTransaction.DataRows.Add(positionRow);
            // Update the record in the SQL database.
            SqlCommand sqlCommand = new SqlCommand(@"update ""Position"" set ""RowVersion""=@rowVersion,""UserData0""=@userData0,""UserData1""=@userData1,""UserData2""=@userData2,""UserData3""=@userData3,""UserData4""=@userData4,""UserData5""=@userData5,""UserData6""=@userData6,""UserData7""=@userData7 where ""AccountId""=@accountId and ""SecurityId""=@securityId and ""PositionTypeCode""=@positionTypeCode");

            sqlCommand.Connection  = sqlTransaction.Connection;
            sqlCommand.Transaction = sqlTransaction;
            sqlCommand.Parameters.Add(new SqlParameter("@rowVersion", SqlDbType.BigInt, 0, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, rowVersion));
            sqlCommand.Parameters.Add(new SqlParameter("@accountId", SqlDbType.Int, 0, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, accountId));
            sqlCommand.Parameters.Add(new SqlParameter("@securityId", SqlDbType.Int, 0, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, securityId));
            sqlCommand.Parameters.Add(new SqlParameter("@positionTypeCode", SqlDbType.Int, 0, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, positionTypeCode));
            sqlCommand.Parameters.Add(new SqlParameter("@userData0", SqlDbType.Decimal, 0, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, userData0));
            sqlCommand.Parameters.Add(new SqlParameter("@userData1", SqlDbType.Decimal, 0, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, userData1));
            sqlCommand.Parameters.Add(new SqlParameter("@userData2", SqlDbType.Decimal, 0, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, userData2));
            sqlCommand.Parameters.Add(new SqlParameter("@userData3", SqlDbType.Decimal, 0, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, userData3));
            sqlCommand.Parameters.Add(new SqlParameter("@userData4", SqlDbType.Decimal, 0, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, userData4));
            sqlCommand.Parameters.Add(new SqlParameter("@userData5", SqlDbType.Decimal, 0, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, userData5));
            sqlCommand.Parameters.Add(new SqlParameter("@userData6", SqlDbType.Decimal, 0, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, userData6));
            sqlCommand.Parameters.Add(new SqlParameter("@userData7", SqlDbType.Decimal, 0, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, userData7));
            // Update the record in the SQL database.
            sqlCommand.ExecuteNonQuery();
        }