Exemplo n.º 1
0
 /// <summary>
 /// 取下一条要传送的报文
 /// </summary>
 /// <returns></returns>
 public static MTSMessage GetNextMsg(string DeployID, ref string TargetAddr)
 {
     TargetAddr = "";
     try
     {
         SqlParameter[] _param =
         {
             new SqlParameter("strdeployid", SqlDbType.VarChar),
             //new SqlParameter("strmsgguid",SqlDbType.VarChar,ParameterDirection.Output),
             //new SqlParameter("strtargetserviceip",SqlDbType.VarChar, ParameterDirection.Output),
             //new SqlParameter("nret",SqlDbType.Decimal, ParameterDirection.Output),
             //new SqlParameter("strerr",SqlDbType.VarChar, ParameterDirection.Output)
         };
         _param[0].Value = DeployID;
         _param[1].Size  = 50;
         _param[2].Size  = 1000;
         _param[4].Size  = 40000;
         SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringProfile, CommandType.StoredProcedure, SQL_GetNextMTSMessage, _param);
         decimal _ret = -1;// (((SqlDecimal)_param[3].Value).IsNull) ? (decimal)1 : (decimal)(SqlDecimal.SetPrecision((SqlDecimal)_param[3].Value, 28));
         if (_ret > 0)
         {
             throw new Exception(string.Format("取待发报文失败! {0}", (_param[4].Value == DBNull.Value) ? "" : _param[4].Value.ToString()));
         }
         else
         {
             string _id = (((SqlString)_param[1].Value).IsNull) ? "" : _param[1].Value.ToString();
             TargetAddr = (((SqlString)_param[2].Value).IsNull) ? "" : _param[2].Value.ToString();
             if (_id == null || _id == "")
             {
                 return(null);
             }
             else
             {
                 //取报文内容
                 MTSMessage _retMsg = GetMTSMessgeByID(_id);
                 return(_retMsg);
             }
         }
     }
     catch (Exception ex)
     {
         LogWriter.WriteSystemLog(ex.Message, "ERROR");
         throw ex;
     }
 }
Exemplo n.º 2
0
        private static MTSMessage GetMTSMessgeByID(string _id)
        {
            MTSMessage _msg = new MTSMessage();

            using (SqlConnection cn = SqlHelper.OpenConnection())
            {
                SqlTransaction _tx = cn.BeginTransaction();
                try
                {
                    ////先改记录标识
                    SqlCommand _upCmd = new SqlCommand(SQL_ChangeMTSMessageStatus, cn);
                    _upCmd.Parameters.Add(":ST", "TX正在发送");
                    _upCmd.Parameters.Add(":ID", _id);
                    _upCmd.ExecuteNonQuery();
                    //取记录内容
                    SqlCommand _cmd = new SqlCommand(SQL_GetMTSMessgeByID, cn);
                    _cmd.Parameters.Add(":ID", _id);
                    using (SqlDataReader dr = _cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            _msg.PKGuid      = dr.IsDBNull(0) ? "" : dr.GetString(0);
                            _msg.DEPLOYID_TX = dr.IsDBNull(1) ? "" : dr.GetString(1);
                            _msg.DEPLOYID_RX = dr.IsDBNull(2) ? "" : dr.GetString(2);
                            _msg.DataPKG     = dr.IsDBNull(3) ? "" : dr.GetString(3);
                            _msg.PROCMETHOD  = dr.IsDBNull(4) ? "" : dr.GetString(4);
                        }
                        dr.Close();
                    }
                    _tx.Commit();
                }
                catch (Exception ex)
                {
                    LogWriter.WriteSystemLog(ex.Message, "ERROR");
                    _tx.Rollback();
                    return(null);
                }
            }
            return(_msg);
        }