Ejemplo n.º 1
0
Archivo: Sql.cs Proyecto: wpmyj/csharp
        public static void RealCollect()
        {
            RealTimePacket RPacket = new RealTimePacket();
            DensityPacket  DPacket = new DensityPacket();

            while (SysFlag.ServiceStart)
            {
                if (Configs.RealTimePacketQueue.Count > 0)
                {
                    lock (Configs.RealTimePacketQueue)
                    {
                        RPacket = (RealTimePacket)Configs.RealTimePacketQueue.Dequeue();
                        SysFlag.RealTimePacketCount++;
                    }
                    InsertToRealTimeSheet(RPacket);
                    Oracle.InsertToRealTimeSheet(RPacket);
                    Oracle.UpdataToRealTimeSheet(RPacket);
                }
                if (Configs.DensityPacketQueue.Count > 0)
                {
                    lock (Configs.DensityPacketQueue)
                    {
                        DPacket = (DensityPacket)Configs.DensityPacketQueue.Dequeue();
                        SysFlag.DensityPacketCount++;
                    }
                    InsertToDensitySheet(DPacket);
                }
                else
                {
                    System.Threading.Thread.Sleep(100);
                }
            }
            SqlConn.Close();
        }
Ejemplo n.º 2
0
Archivo: Sql.cs Proyecto: wpmyj/csharp
        private static bool InsertToRealTimeSheet(RealTimePacket Packet)
        {
            string sCommand = "";

            try
            {
                Packet.StationId = ASearchBInSheet(Configs.SqlStationInforSheet, "StationNumber", Packet.StationNumber);
                sCommand         = "INSERT INTO " + Configs.SqlRealTimeSheet + " VALUES("
                                   + Packet.StationId + ","
                                   + Packet.StationNumber + ","
                                   + AddHead(Packet.RecordDataTime).ToString() + ","
                                   + Packet.RecordWaterLevel + ","
                                   + Packet.RecordRainFall + ","
                                   + Packet.RecordTemperature + ","
                                   + Packet.RecordDimension + ","
                                   + Packet.RecordLongitude + ","
                                   + Packet.RecordVoltage + ","
                                   + AddHead(Packet.RecordOther).ToString() + ","
                                   + AddHead(Packet.Note).ToString() + ")";
                TryOpen();
                SqlCommand objSqlCommand = new SqlCommand(sCommand, Sql.SqlConn);
                objSqlCommand.ExecuteNonQuery();
                TryClose();
            }
            catch (Exception E)
            {
                CreateInfor.WriteLogs(E.Message + "->导致【" + sCommand + "】入库失败!");
                return(false);
            }
            return(true);
        }
Ejemplo n.º 3
0
        public static bool InsertToRealTimeSheet(RealTimePacket Packet)
        {
            string sCommand = "";

            try
            {
                int.Parse(Packet.RecordExplain);
            }
            catch { Packet.RecordExplain = "0"; }
            try
            {
                Packet.RecordDataTime = DateTime.Parse(Packet.RecordDataTime).AddSeconds(double.Parse(Packet.RecordExplain)).ToString();
                sCommand = "INSERT INTO " + SheetName.ST_GRW_R + "(STCD,TM,GWBD,GWBDRMK) VALUES("
                           + Tools.GetSqlString(Packet.StationNumber) + ","
                           + "to_date(" + Tools.GetSqlString(Packet.RecordDataTime) + ",'yyyy-mm-dd hh24:mi:ss'),"
                           + Tools.GetSqlString(Packet.RecordWaterLevel) + ","
                           + Tools.GetSqlString(Packet.RecordExplain) + ")";
                TryOpen();
                OracleCommand objSqlCommand = new OracleCommand(sCommand, OracleConn);
                objSqlCommand.ExecuteNonQuery();
                TryClose();
            }
            catch (Exception E)
            {
                CreateInfor.WriteLogs(E.Message + "->导致【" + sCommand + "】入库失败或数据被更新!");
                return(false);
            }
            return(true);
        }
Ejemplo n.º 4
0
        public static bool UpdataToRealTimeSheet(RealTimePacket Packet)
        {
            string sCommand = "";

            try
            {
                int.Parse(Packet.RecordExplain);
            }
            catch { Packet.RecordExplain = "0"; }
            try
            {
                Packet.RecordDataTime = DateTime.Parse(Packet.RecordDataTime).AddSeconds(double.Parse(Packet.RecordExplain)).ToString();
                sCommand = "UPDATE " + SheetName.ST_GRW_R + " SET " +
                           " STCD=" + Tools.GetSqlString(Packet.StationNumber) + "," +
                           " TM=" + "to_date(" + Tools.GetSqlString(Packet.RecordDataTime) + ",'yyyy-mm-dd hh24:mi:ss')," +
                           " GWBD=" + Tools.GetSqlString(Packet.RecordWaterLevel) + "," +
                           " GWBDRMK=" + Tools.GetSqlString(Packet.RecordExplain) +
                           " WHERE STCD=" + Tools.GetSqlString(Packet.StationNumber) +
                           " AND TM=to_date(" + Tools.GetSqlString(Packet.RecordDataTime) + ",'yyyy-mm-dd hh24:mi:ss')";
                TryOpen();
                OracleCommand objSqlCommand = new OracleCommand(sCommand, OracleConn);
                objSqlCommand.ExecuteNonQuery();
                TryClose();
            }
            catch (Exception E)
            {
                CreateInfor.WriteLogs(E.Message + "->导致【" + sCommand + "】更新失败!");
                return(false);
            }
            return(true);
        }
Ejemplo n.º 5
0
        public static bool ExpendWithAAA(byte[] RxBuffer, int Length)
        {
            if (!IfTrueWithAAA(RxBuffer, Length))
            {
                return(false);
            }
            RealTimePacket TempPacket = new RealTimePacket();
            string         Msg        = Encoding.GetEncoding("gb2312").GetString(RxBuffer, 0, Length);

            string[] Arry = Msg.Split(';');
            int      i    = 1;

            ClearRealTimePacket(ref TempPacket);
            TempPacket.StationNumber   = Arry[i++];
            TempPacket.StationOrder    = Arry[i++];
            TempPacket.StationPosition = Arry[i++];
            TempPacket.StationName     = Arry[i++];
            TempPacket.RecordDataTime  = Arry[i++].ToString();
            string[] DataArry = Arry[i++].Split(',');
            string[] InfoArry = Arry[i++].Split(',');
            TempPacket.RecordRainFall    = SelectDataFromArry(InfoArry, DataArry, "雨量");
            TempPacket.RecordWaterLevel  = SelectDataFromArry(InfoArry, DataArry, "水位");
            TempPacket.RecordDimension   = SelectDataFromArry(InfoArry, DataArry, "经度");
            TempPacket.RecordLongitude   = SelectDataFromArry(InfoArry, DataArry, "纬度");
            TempPacket.RecordTemperature = SelectDataFromArry(InfoArry, DataArry, "温度");
            TempPacket.RecordVoltage     = SelectDataFromArry(InfoArry, DataArry, "电压");
            TempPacket.RecordExplain     = SelectDataFromArry(InfoArry, DataArry, "水势");
            lock (Configs.RealTimePacketQueue)
            {
                Configs.RealTimePacketQueue.Enqueue(TempPacket);
            }
            return(true);
        }
Ejemplo n.º 6
0
 public static void ClearRealTimePacket(ref RealTimePacket Packet)
 {
     Packet.RecordOther       = "NULL";
     Packet.RecordRainFall    = "NULL";
     Packet.RecordTemperature = "NULL";
     Packet.RecordVoltage     = "NULL";
     Packet.RecordWaterLevel  = "NULL";
     Packet.RecordDimension   = "NULL";
     Packet.RecordLongitude   = "NULL";
     Packet.StationPosition   = "NULl";
     Packet.Note = "NULL";
 }