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); }
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("========处理完毕"); }