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

📄 frmtools.~cpp

📁 数据库后台管理工具
💻 ~CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <Registry.hpp>
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <strstream>
#include <string>
#include <nb30.h>

#pragma hdrstop

#include "Frmtools.h"
#include "Frmlogin.h"
#include "SJKLL.h"
#include "Tzc.h"
#include "YDver.h"
#include "CZKL.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFrmtool *Frmtool;
using namespace std;
//---------------------------------------------------------------------------
__fastcall TFrmtool::TFrmtool(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TFrmtool::FormShow(TObject *Sender)
{
  Database1->Open();
  Table2->Open();
  Login->Hide();
  Timer1->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TFrmtool::FormClose(TObject *Sender, TCloseAction &Action)
{

 Table2->Active=false;
 Table2->Exclusive=true;
 Table2->EmptyTable();
 Table2->Exclusive=false;
 Table2->Active=true;
 Session->DeleteAlias("ydgl");
 Session->SaveConfigFile();
 Login->Close();
}
//---------------------------------------------------------------------------

void __fastcall TFrmtool::SpeedButton3Click(TObject *Sender)
{
  KL=new TKL(this);
  KL->ShowModal();
  if (!KL->klok)
   {
   delete KL;
   return;
   }
  else
   {
    delete KL;
   }
  Timer1->Enabled=false;
  AnsiString SQLstmt;
  AnsiString strpath;
  if(RadioButton1->Checked)
   {
     AnsiString AppPath = ExtractFilePath(Application->ExeName);
     strpath= AppPath +"backup\\Yddb.bak";
    }
    else strpath=ExtractFilePath(Edit2->Text)+"Yddb.bak";
//DirectoryExists()//检查制定目录是否存在
 if (ExtractFileDrive(strpath)!="A:")
  {
  Database1->Open();
  SQLstmt="USE master";
  SQLstmt=SQLstmt+" EXEC sp_addumpdevice 'disk','ydbak','";
  SQLstmt=SQLstmt+strpath+"'";
  SQLstmt=SQLstmt+" BACKUP DATABASE Yddb TO ydbak WITH INIT";
  Database1->Execute(SQLstmt, NULL, false, NULL);
  Database1->Execute("USE master EXEC sp_dropdevice 'ydbak'", NULL, false, NULL);
  Database1->Execute("USE yddb", NULL, false, NULL);
  }
   else
   {
     MessageBox(NULL,"软盘容量不足,请备份到硬盘!","提示",MB_OK|MB_ICONWARNING);
   }
  //
//  StatusBar1->Panels->Items[1]->Text=SpeedButton3->Caption;
  StatusBar1->Update();
  for (int i=1;i<=100;i++)
  {
   for (int j=1;j<1000000;j++);
   ProgressBar1->Position+=1;
  }
 ProgressBar1->Position=0;
// StatusBar1->Panels->Items[1]->Text="";
//

  Timer1->Enabled=true;
 }
//---------------------------------------------------------------------------

void __fastcall TFrmtool::SpeedButton4Click(TObject *Sender)
{
  KL=new TKL(this);
  KL->ShowModal();
  if (!KL->klok)
   {
   delete KL;
   return;
   }
  else
   {
    delete KL;
   }
  Timer1->Enabled=false;
  AnsiString SQLstmt;
  AnsiString strpath;
  if(RadioButton1->Checked)
   {
     AnsiString AppPath = ExtractFilePath(Application->ExeName);
     strpath= AppPath +"backup\\Yddb.bak";
   }
   else strpath=Edit2->Text;

  if (FileExists(strpath))
 {
  Database1->Close();
  SQLstmt="USE master";
  SQLstmt=SQLstmt+" EXEC sp_addumpdevice 'disk','ydbak','";
  SQLstmt=SQLstmt+strpath+"'";
  SQLstmt=SQLstmt+" RESTORE DATABASE Yddb FROM ydbak ";
  Database1->Execute(SQLstmt, NULL, false, NULL);
  Database1->Close();
  Database1->Execute("USE master EXEC sp_dropdevice 'ydbak'", NULL, false, NULL);
  Database1->Execute("USE yddb", NULL, false, NULL);
  Timer1->Enabled=true;
  Database1->Open();
  Table2->Open();
 }
 else MessageBox(NULL,"指定的文件不存在!","提示",MB_OK|MB_ICONWARNING);
}
//---------------------------------------------------------------------------

void __fastcall TFrmtool::Timer1Timer(TObject *Sender)
{
  Table2->Refresh();
  Table2->Last();
  int zxhs=0;
  int tchs=0;
  int dlhs=0;
  Table2->First();
  while (!Table2->Eof)
    {
      if (Table2->FieldByName("bz")->AsString=="登录")
         dlhs++;
      else
         tchs++;
      Table2->Next();
    }
     zxhs=dlhs-tchs;
     if (zxhs<0)
       zxhs=0;
   AnsiString ts1="在线用户数:"+IntToStr(zxhs);
   StatusBar1->Panels->Items[0]->Text=ts1;

}
//---------------------------------------------------------------------------


void __fastcall TFrmtool::Timer2Timer(TObject *Sender)
{
 AnsiString ts3= DateTimeToStr(Now());
 StatusBar1->Panels->Items[2]->Text=ts3;

}
//---------------------------------------------------------------------------

void __fastcall TFrmtool::SpeedButton2Click(TObject *Sender)
{
  Application->HelpCommand(HELP_FINDER, 0);
}
//---------------------------------------------------------------------------


void __fastcall TFrmtool::FormCreate(TObject *Sender)
{

ServerSocket1->Open();
AnsiString AppPath=ExtractFilePath(Application->ExeName);
Edit1->Text=AppPath+"bACKUP";
zcyz();
}
//---------------------------------------------------------------------------

void __fastcall TFrmtool::RadioButton2Click(TObject *Sender)
{
if(OpenDialog1->Execute())
  Edit2->Text=OpenDialog1->FileName;
else
 {
 Edit2->Text="";
 RadioButton1->SetFocus();
 RadioButton1->Checked=true;

 }
}
//---------------------------------------------------------------------------





void __fastcall TFrmtool::SpeedButton5Click(TObject *Sender)
{
  KL=new TKL(this);
  KL->ShowModal();
  if (!KL->klok)
   {
   delete KL;
   return;
   }
  else
   {
    delete KL;
   }

  Fsjkll=new TFsjkll(Application);
  Fsjkll->ShowModal();
  delete Fsjkll;        
}
//---------------------------------------------------------------------------

void __fastcall TFrmtool::SpeedButton6Click(TObject *Sender)
{
 zc2=new Tzc2(Application);
 zc2->ShowModal();
 delete zc2;

}
//---------------------------------------------------------------------------
bool TFrmtool::GetAdapterInfo(int nAdapterNum, AnsiString &sMAC)
{
    // Reset the LAN adapter so that we can begin querying it
    NCB Ncb;
    memset(&Ncb, 0, sizeof(Ncb));
    Ncb.ncb_command = NCBRESET;
    Ncb.ncb_lana_num = nAdapterNum;
    if (Netbios(&Ncb) != NRC_GOODRET) {
        char acTemp[80];
        ostrstream outs(acTemp, sizeof(acTemp));
        outs << "error " << Ncb.ncb_retcode << " on reset" << ends;
        sMAC = acTemp;
        return false;
    }

    // Prepare to get the adapter status block
    memset(&Ncb, 0, sizeof(Ncb));
    Ncb.ncb_command = NCBASTAT;
    Ncb.ncb_lana_num = nAdapterNum;
    strcpy((char *) Ncb.ncb_callname, "*");
    struct ASTAT {
        ADAPTER_STATUS adapt;
        NAME_BUFFER NameBuff[30];
    } Adapter;
    memset(&Adapter, 0, sizeof(Adapter));
    Ncb.ncb_buffer = (unsigned char *)&Adapter;
    Ncb.ncb_length = sizeof(Adapter);

    // Get the adapter's info and, if this works, return it in standard,
    // colon-delimited form.
    if (Netbios(&Ncb) == 0) {
        char acMAC[18];
        sprintf(acMAC, "%02X:%02X:%02X:%02X:%02X:%02X",
                int (Adapter.adapt.adapter_address[0]),
                int (Adapter.adapt.adapter_address[1]),
                int (Adapter.adapt.adapter_address[2]),
                int (Adapter.adapt.adapter_address[3]),
                int (Adapter.adapt.adapter_address[4]),
                int (Adapter.adapt.adapter_address[5]));
        sMAC = acMAC;
        return true;
    }
    else {
        char acTemp[80];
        ostrstream outs(acTemp, sizeof(acTemp));
        outs << "error " << Ncb.ncb_retcode << " on ASTAT" << ends;
        sMAC = acTemp;
        return false;
    }
}
//-----------------------------
void  TFrmtool::zcyz()
{
  TRegistry *reg=new TRegistry();
  reg->RootKey=HKEY_CURRENT_USER;
     LANA_ENUM AdapterList;
     NCB Ncb;
     memset(&Ncb, 0, sizeof(NCB));
     Ncb.ncb_command = NCBENUM;
     Ncb.ncb_buffer = (unsigned char *)&AdapterList;
     Ncb.ncb_length = sizeof(AdapterList);
     Netbios(&Ncb);
     AnsiString mac_addr,temp0,temp1="";
     AnsiString charset="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
     for (int i = 0; i < AdapterList.length; i++)
       {
        if (!GetAdapterInfo(AdapterList.lana[0], mac_addr))
          {
            Application->MessageBox("读取硬件标志错误","错误信息",MB_OK);
            break;
          }
        }
     temp0="ZX"+mac_addr.SubString(7,2)+mac_addr.SubString(10,2)
      +mac_addr.SubString(13,2)+mac_addr.SubString(16,2);
      for(int i=1;i<temp0.Length()+1;i++)
        {
         int j=1,k;
         for(;j<charset.Length()+1;j++)
           {
            if(temp0[i]==charset[j])
               break;
           }
         k=(j+4)%36+1;
         temp1+=charset[k];
        }
     StatusBar1->Panels->Items[3]->Text="授权号:"+temp1;
      int my[]={0,8,15,14,7,20,1,15,11,1,9};
      temp="";
       for(int i=1;i<11;i++)
         {
          int ii=1;
          for(;ii<37;ii++)
             {
               if(temp1[i]==charset[ii])
                 break;
              }
            int kk=(ii*my[i])%36+1;
            temp+=charset[kk];
         }

  int i;
  if(reg->OpenKey("\\software\\Mars\\aptitude",false))
    {
     authtemp=reg->ReadString("auth_nb");//read the authorization number
          if(temp==authtemp)
           {
             Caption="营业用电后台数据库管理工具(Ver 1.0)";
             SpeedButton6->Enabled=false;
            }
          else
           {
             Caption="营业用电后台数据库管理工具(Ver 1.0)--无效注册!";
             SpeedButton6->Enabled=true;

            }

     }
   else
     {
       Caption="营业用电后台数据库管理工具(Ver 1.0)--未注册!";
       SpeedButton6->Enabled=true;

    }
}
//--------------------------------------
void __fastcall TFrmtool::SpeedButton7Click(TObject *Sender)
{
 Fver=new TFver(Application);
 Fver->ShowModal();
 delete Fver;
        
}
//---------------------------------------------------------------------------

void __fastcall TFrmtool::ServerSocket1Accept(TObject *Sender,
      TCustomWinSocket *Socket)
{
 if(temp==authtemp)
  for(int i=0;i<ServerSocket1->Socket->ActiveConnections;i++)
    ServerSocket1->Socket->Connections[i]->SendText("已注册");
 else
  for(int i=0;i<ServerSocket1->Socket->ActiveConnections;i++)
    ServerSocket1->Socket->Connections[i]->SendText("未注册");


}
//---------------------------------------------------------------------------




void __fastcall TFrmtool::FormCloseQuery(TObject *Sender, bool &CanClose)
{
  KL=new TKL(this);
  KL->ShowModal();
  if (!KL->klok)
   {
    delete KL;
    CanClose = false;
   }
  else
   {
    delete KL;
    if ( Application->MessageBox("真的要退出系统吗?","提示", MB_YESNO|MB_ICONQUESTION)==IDYES)
      CanClose = true;
    else
      CanClose = false;
   }
}
//---------------------------------------------------------------------------

void __fastcall TFrmtool::SpeedButton1Click(TObject *Sender)
{
 Close();        
}
//---------------------------------------------------------------------------

void __fastcall TFrmtool::RadioButton1Click(TObject *Sender)
{
 Edit2->Text="";        
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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