/// <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; } }
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); }