Exemple #1
0
        public JyDataSet.已发委托DataTable QueryWTData(DateTime startDate, DateTime endDate, string strWhere)
        {
            StringBuilder sb = new StringBuilder();

            JyDataSet.已发委托DataTable dtWt = new JyDataSet.已发委托DataTable();
            string sql = string.Format("select 日期,组合号,委托编号,交易员,状态说明,市场代码,证券代码,证券名称,买卖方向,成交价格,成交数量,委托价格,委托数量,撤单数量  from dbo.已发委托 where 日期>='{0}' and 日期<='{1}'", startDate, endDate);

            sb.Append(sql);

            if (!string.IsNullOrEmpty(strWhere))
            {
                sb.Append(string.Format(" and {0}", strWhere));
            }
            DataTable resultDt = SQLHelper.ExecuteDt(sb.ToString());

            foreach (DataRow dr in resultDt.Rows)
            {
                JyDataSet.已发委托Row newRow = dtWt.New已发委托Row();
                dtWt.Add已发委托Row(newRow);
                newRow.日期   = Convert.ToDateTime(dr["日期"]);
                newRow.组合号  = dr["组合号"].ToString();
                newRow.委托编号 = dr["委托编号"].ToString();
                newRow.交易员  = dr["交易员"].ToString();
                newRow.状态说明 = dr["状态说明"].ToString();
                newRow.市场代码 = Convert.ToByte(dr["市场代码"]);
                newRow.证券代码 = dr["证券代码"].ToString();
                newRow.证券名称 = dr["证券名称"].ToString();
                newRow.买卖方向 = Convert.ToInt32(dr["买卖方向"]);
                newRow.成交价格 = Convert.ToDecimal(dr["成交价格"]);
                newRow.成交数量 = Convert.ToDecimal(dr["成交数量"]);
                newRow.委托价格 = Convert.ToDecimal(dr["委托价格"]);
                newRow.委托数量 = Convert.ToDecimal(dr["委托数量"]);
                newRow.撤单数量 = Convert.ToDecimal(dr["撤单数量"]);
            }
            return(dtWt);
        }
Exemple #2
0
        public bool SendWTData(JyDataSet.已发委托DataTable dtWT, string serverMac)
        {
            try
            {
                if (dtWT.Rows.Count == 0)
                {
                    Program.logger.LogInfo(string.Format("接收server-{0}的已发委托DataTable.Rows=0", serverMac));
                    return(false);
                }
                JyDataSet.已发委托Row firstRow1 = dtWT[0];
                //判断当前MAC是否已经更新数据
                string    sqlMac = string.Format("select 更新日期 from dbo.日志表 where 服务器MAC='{0}' and 数据类型='委托'", serverMac);
                DataTable dtMac  = SQLHelper.ExecuteDt(sqlMac);
                if (dtMac.Rows.Count > 0)
                {
                    int cDate = Convert.ToInt32(firstRow1.日期.ToString("yyyyMMdd"));
                    if (cDate == Convert.ToInt32(dtMac.Rows[0]["更新日期"].ToString()))
                    {
                        string updateType = ConfigMain.GetConfigValue("UpdateType");
                        if ("0".Equals(updateType))
                        {
                            //删除原有server Mac的数据
                            string sqlDel = string.Format("delete from dbo.已发委托 where 服务器MAC='{0}' and 日期='{1}'", serverMac, firstRow1.日期.ToString("yyyyMMdd"));
                            SQLHelper.ExecuteSql(sqlDel);
                        }
                    }
                }

                StringBuilder sb = new StringBuilder();
                sb.Append("begin ");
                Program.logger.LogInfo(string.Format("委托数据入库开始:{0},当前server-{1}", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), serverMac));
                foreach (JyDataSet.已发委托Row 已发委托Row1 in dtWT)
                {
                    string sql = string.Format("insert into dbo.已发委托(日期,组合号,委托编号,交易员,状态说明,市场代码,证券代码,证券名称,买卖方向,成交价格,成交数量,委托价格,委托数量,撤单数量,服务器MAC)values('{0}','{1}','{2}','{3}','{4}',{5},'{6}','{7}',{8},'{9}',{10},{11},{12},{13},'{14}');",
                                               已发委托Row1.日期.ToString("yyyyMMdd"),
                                               已发委托Row1.组合号,
                                               已发委托Row1.委托编号,
                                               已发委托Row1.交易员,
                                               已发委托Row1.状态说明,
                                               已发委托Row1.市场代码,
                                               已发委托Row1.证券代码,
                                               已发委托Row1.证券名称,
                                               已发委托Row1.买卖方向,
                                               已发委托Row1.成交价格,
                                               已发委托Row1.成交数量,
                                               已发委托Row1.委托价格,
                                               已发委托Row1.委托数量,
                                               已发委托Row1.撤单数量,
                                               serverMac
                                               );
                    sb.Append(sql);
                }
                sb.Append(" end;");
                SQLHelper.ExecuteSql(sb.ToString());

                //更新日志表
                string         sqlLog = string.Empty;
                SqlParameter[] sqlParm;
                if (dtMac.Rows.Count > 0)
                {
                    sqlLog  = "update dbo.日志表 set 更新日期=@更新日期,更新数量=@更新数量 where 服务器MAC=@服务器MAC and 数据类型='委托'";
                    sqlParm = new SqlParameter[] { new SqlParameter("@更新日期", Convert.ToInt32(firstRow1.日期.ToString("yyyyMMdd"))), new SqlParameter("@更新数量", dtWT.Rows.Count), new SqlParameter("@服务器MAC", serverMac) };
                }
                else
                {
                    sqlLog  = "insert into dbo.日志表(服务器MAC,更新数量,数据类型,更新日期)values(@服务器MAC,@更新数量,@数据类型,@更新日期)";
                    sqlParm = new SqlParameter[] { new SqlParameter("@更新日期", Convert.ToInt32(firstRow1.日期.ToString("yyyyMMdd"))), new SqlParameter("@更新数量", dtWT.Rows.Count), new SqlParameter("@数据类型", "委托"), new SqlParameter("@服务器MAC", serverMac) };
                }

                SQLHelper.ExecuteSql(sqlLog, sqlParm);

                Program.logger.LogInfo(string.Format("委托数据入库结束:{0},当前server-{1}", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), serverMac));
            }
            catch (Exception ex)
            {
                Program.logger.LogInfo(string.Format("委托数据入库异常:{0},当前server-{1}", ex.Message, serverMac));
                return(false);
            }
            return(true);
        }