⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 npm_overviewsystembss.cpp

📁 移动通信网中摩托罗拉BSC话务统计分析软件,实现原始话统文件导入SQL SERVER2000数据库,极大方便后期分析.做摩托无线维护的同志必备.
💻 CPP
字号:
void __fastcall TMainForm::NPM_OverviewSystemBSS()
{
    TStringList *list;
    TQuery *query;
    int numsucc=0, numfail=0;
    AnsiString FileName, sql, srchsql, delsql;
    AnsiString Key1, Key2, Key3, Key4;

    FileName = "BssReport." + FileNamePre + "10";
    Key2 = "'" + FileNamePre.SubString(1, 4) + "-" + FileNamePre.SubString(5, 2) + "-" + FileNamePre.SubString(7, 2) + "'";

    query = new TQuery(NULL);
    query->DatabaseName = Database1->DatabaseName;

    list = new TStringList;
    list->LoadFromFile(FileName);
    for(int i=0;i<list->Count;i++)    //文本文件各行的处理
    {
        AnsiString s = list->Strings[i];

        if(s.SubString(1, 8)=="BssStats")        //如果是数据则进行导入处理
        {
            Key1 = "'" + s.SubString(1, 8) + "'";
            Key3 = s.SubString(19, 2);
            s = s.SubString(22, s.Length()-1);
            Key4 = "'" + s.SubString(1, s.AnsiPos("|")-1) + "'";
            s = s.SubString(s.AnsiPos("|")+1, s.Length()-1);

            sql = "insert into G_BssReport values(" + Key1 + "," + Key2 + "," + Key3 + "," + Key4 + ",";

            for(int k=1;k<=s.Length();k++)  //对非字符类型数据进行空格替换成","
            {
                if(((s.SubString(k, 1))>="0" && (s.SubString(k, 1))<="9") || s.SubString(k, 1)==".")
                    sql = sql + s.SubString(k, 1);
                else
                    if((s.SubString(k, 1)=="|"))
                        sql = sql + ",";
                    else
                        sql = sql + "0";
            }

            sql = sql + ")";
            //LogMemo->Lines->Add(sql);
            numsucc = 0;
            for(int j=0; j<=sql.Length(); j++)     //判断SQL语句是否正确,即字段数量是否正常
            {
                if(sql.SubString(j, 1)==",")
                    numsucc = numsucc + 1;
            }

            if(RightStr(sql, 2) == ",)")
            {
                sql = sql.SubString(1,sql.Length()-2) + ",0)";
            }

            if(numsucc==193)                 //将所取的一行的数据导入数据库
            {
                srchsql = "select * from G_BssReport where MyDate=" + Key2 +" and MyTime=" + Key3 + " and Bss=" + Key4;
                query->SQL->Clear();
                query->SQL->Add(srchsql);
                //Memo1->Lines->Add(srchsql);
                query->Open();
                if(query->RecordCount > 0)    //如果库中已经有本行数据则删除之
                {
                    delsql = "delete from G_BssReport where MyDate=" + Key2 +" and MyTime=" + Key3 + " and BSS=" + Key4;
                    query->SQL->Clear();
                    query->SQL->Add(delsql);
                    //Memo1->Lines->Add(delsql);
                    query->ExecSQL();
                }

                query->SQL->Clear();
                query->SQL->Add(sql);
                query->ExecSQL();
            }
            else
            numfail = numfail + 1;

            Application->ProcessMessages();

        }
    }

    LogMemo->Lines->Add("已经成功将" + Key2 + "的CellReport早忙时数据导入数据库,原始文件中有" +IntToStr(numfail) + "行数据不全,请查实");
    delete query;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -