예제 #1
0
        private bool closeAndCheck(TamPub1.FileOperation checkFile)
        {
            if (checkFile.pos < maxFileSize)
            {
                checkFile.close();
                return(true);
            }
            checkFile.close();
            string newFilename = checkFile.filename;

            newFilename = TamPub1.FileOperation.changeFileExt(newFilename, ".bak.txt");
            try {
                TamPub1.FileOperation.delete(newFilename);
                TamPub1.FileOperation.rename(checkFile.filename, newFilename);
            } catch {
                return(false);
            }
            return(true);
        }
예제 #2
0
파일: Form1.cs 프로젝트: x3titan/cs
        private void button6_Click(object sender, EventArgs e)
        {
            //2-9]
            bool testMode = true;

            log.writeLogCommon("启动数据库查询,后续处理时间约30秒,请耐心等待...");
            Application.DoEvents();
            TamPub1.FileOperation csv = new TamPub1.FileOperation();
            OdbcCommand           cmd = new OdbcCommand();

            cmd.CommandTimeout = 60 * 30;
            cmd.Connection     = odbcConnection;
            cmd.CommandText    =
                "SELECT dbo.apnDay180.imsi, dbo.apnDay180.dayIndex, dbo.apnDay180.dayHour, " +
                "                dbo.apnDay180.tcpUploadBytes, dbo.apnDay180.tcpDownloadBytes, dbo.apnDay180.udpUploadBytes, " +
                "                dbo.apnDay180.udpDownloadBytes, dbo.apnDay180.tcpUploadPackets, dbo.apnDay180.tcpDownloadPackets, " +
                "                dbo.apnDay180.udpUploadPackets, dbo.apnDay180.udpDownloadPackets, dbo.apnDay180.tcpRetryCount, " +
                "                dbo.apnInfo.apnName, dbo.apnInfo.apnDisplayName, dbo.apnInfo.apnType, dbo.apnInfo.id AS apnCode " +
                "FROM      dbo.apnInfo RIGHT OUTER JOIN " +
                "                dbo.imsiInfo ON dbo.apnInfo.id = dbo.imsiInfo.apnIndex RIGHT OUTER JOIN " +
                "                dbo.apnDay180 ON dbo.imsiInfo.imsi COLLATE Chinese_PRC_CS_AS = dbo.apnDay180.imsi " +
                "WHERE(dbo.apnDay180.dayIndex >= 2) AND(dbo.apnDay180.dayIndex <= 9) " +
                "ORDER BY dbo.imsiInfo.imsi, dbo.apnDay180.dayIndex, dbo.apnDay180.dayHour ";
            try {
                OdbcDataReader sqlResult = cmd.ExecuteReader();
                csv.textCoding = "gb2312";
                if (testMode)
                {
                    csv.filename = "D:\\tam\\project\\nokiaBigData\\spyderAI\\ai\\data\\day8test.csv";
                }
                else
                {
                    csv.filename = "D:\\tam\\project\\nokiaBigData\\spyderAI\\ai\\data\\day8.csv";
                }
                log.writeLogCommon("========数据库查询完毕,开始生成文件:" + csv.filename);
                File.Delete(csv.filename);
                csv.openAppend();
                csv.writeEncodingHeader();
                StringBuilder s           = new StringBuilder();
                string        imsiLast    = "";
                string        imsiCurrent = "";
                int           recordCount = 0;
                while (sqlResult.Read())
                {
                    if (skip)
                    {
                        break;
                    }
                    if (forceExit)
                    {
                        break;
                    }
                    recordCount++;
                    if (testMode && recordCount > 9 * 8 * 8 * 100)
                    {
                        break;
                    }
                    imsiCurrent = Convert.ToString(sqlResult["imsi"]);
                    if (imsiLast.Length <= 0)
                    {
                        imsiLast = imsiCurrent;
                    }
                    if (!imsiLast.Equals(imsiCurrent))
                    {
                        s.Append("\r\n");
                        csv.writeFixedStringEx(s.ToString());
                        s.Clear();
                        string apnName = Convert.ToString(sqlResult["apnName"]);
                        if (apnName.Length <= 0)
                        {
                            s.Append(
                                imsiCurrent +
                                "," + "unknow" +
                                "," + "未知" +
                                ",未知,0"
                                );
                        }
                        else
                        {
                            s.Append(
                                imsiCurrent +
                                "," + Convert.ToString(sqlResult["apnName"]) +
                                "," + Convert.ToString(sqlResult["apnDisplayName"]) +
                                "," + Convert.ToString(sqlResult["apnType"]) +
                                "," + Convert.ToString(sqlResult["apnCode"])
                                );
                        }
                    }
                    s.Append(
                        "," + Convert.ToString(sqlResult["tcpUploadBytes"]) +
                        "," + Convert.ToString(sqlResult["tcpDownloadBytes"]) +
                        "," + Convert.ToString(sqlResult["udpUploadBytes"]) +
                        "," + Convert.ToString(sqlResult["udpDownloadBytes"]) +
                        "," + Convert.ToString(sqlResult["tcpUploadPackets"]) +
                        "," + Convert.ToString(sqlResult["tcpDownloadPackets"]) +
                        "," + Convert.ToString(sqlResult["udpUploadPackets"]) +
                        "," + Convert.ToString(sqlResult["udpDownloadPackets"]) +
                        "," + Convert.ToString(sqlResult["tcpRetryCount"])
                        );
                    imsiLast = imsiCurrent;
                    if (recordCount % 50000 == 0)
                    {
                        log.logDisplay.sameLine();
                        log.writeLogCommon("正在生成csv文件:" + recordCount.ToString("N0"));
                        Application.DoEvents();
                    }
                }
                log.writeLogCommon("数据扫描完毕,等待写入剩余缓存");
                Application.DoEvents();
                csv.close();
                sqlResult.Close();
            } catch (Exception ee) {
                csv.close();
                log.writeLogWarning("数据库执行错误,准备执行重置操作。errorString=" + ee.Message + ",sql=" + cmd.CommandText);
                odbcConnection.Close();
                return;
            }
            log.writeLogCommon("========处理完毕");
        }