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

📄 seccon.~cpp

📁 销售分析,JUSCO,日月周查询,待完善.
💻 ~CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "seccon.h"
#include "datam.h"
#include "daysql.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TQueryForm *QueryForm;
//---------------------------------------------------------------------------
__fastcall TQueryForm::TQueryForm(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 __fastcall TQueryThread::TQueryThread(TQueryForm* AQueryForm)
                        :TThread(false)
{
  QueryForm = AQueryForm;
  FreeOnTerminate = true;
}

__fastcall TQueryThread::~TQueryThread(void)
{
  //delete QueryForm;
}
//---------------------------------------------------------------------------

void __fastcall TQueryThread::Execute(void)
{
  static long UniqueNumber;

  try{
    // Ensure the Query has a unique session and database.  A unique session
    // is required for each thread.  Since databases are session specific
    // it must be unique as well
    InterlockedIncrement(&UniqueNumber);

    String buf = QueryForm->BKSession->Name + UniqueNumber;
    QueryForm->BKSession->SessionName = buf;
    QueryForm->BKDatabase->SessionName = QueryForm->BKSession->SessionName;
     QueryForm->Database->SessionName=  QueryForm->BKSession->SessionName;

    buf = QueryForm->BKDatabase->Name + UniqueNumber;
    QueryForm->BKDatabase->DatabaseName = buf;

    QueryForm->Query->SessionName = QueryForm->BKDatabase->SessionName;
    QueryForm->Query->DatabaseName = QueryForm->BKDatabase->DatabaseName;
   //   QueryForm->act->SessionName = QueryForm->BKDatabase->SessionName;
   // QueryForm->act->DatabaseName = QueryForm->BKDatabase->DatabaseName;
    // Open the query
    buf = QueryForm->Database->Name + UniqueNumber;
    QueryForm->Database->DatabaseName = buf;

    QueryForm->localsum->SessionName = QueryForm->Database->SessionName;
    QueryForm->localsum->DatabaseName = QueryForm->Database->DatabaseName;
    try{
      QueryForm->Query->Open();
    }
    catch(...){
    QueryForm->Query->ExecSQL();
    QueryForm->Query->Close();
    }

    try{
    //QueryForm->BatchMove->Source="Query";
   // QueryForm->BatchMove->Destination=localdetail;
   

      QueryForm->BatchMove->Execute();
    }
    catch(...){


    }
 //   QueryForm->DataSource->DataSet = QueryForm->Query;
  //   QueryForm->Query->Close();
    // Connect the query to the grid.
  //  ConnectQuery();

    // Update the status line.
    //MessageText = "Query opened";
   // DisplayMessage();
  }

  catch(EDatabaseError& e){
    String buf =
          e.Message
          + "\n\n"
          + "1. Be sure Interbase and SQL Links are installed.\n"
          + "2. Run the BDE Configuration utility, BDEADMIN.EXE.\n"
          + "3. Create a new Alias by the name 'IBLOCAL' of type INTRBASE.\n"
          + "4. Set the Server Name to <Interbase path>\\EXAMPLES\\EMPLOYEE.GDB.\n";

    //MessageText = buf;

    // Display error on the status line
  //  DisplayMessage();
  }

  catch(Exception& e){
    String buf = String(e.ClassName()) + " " + e.Message.c_str();
   // MessageText = buf;

    // Display error on the status line
   // DisplayMessage();
  }
  flag=2;
   QueryForm->Query->Close();
// day->Button2->Visible=true;
}
//---------------------------------------------------------------------------

//void __fastcall TQueryThread::ConnectQuery(void)
//{
 // QueryForm->DataSource->DataSet = QueryForm->Query;
//}
//---------------------------------------------------------------------------


//---------------------------------------------------------------------------

void __fastcall BackgroundQuery(const AnsiString QueryName,
                                const AnsiString Alias,
                                const AnsiString User,
                                const AnsiString Password,
                                const AnsiString QueryText)
{
  //The QueryForm object is deleted in TQueryThread's destructor
  TQueryForm* QueryForm = new TQueryForm(Application);

 // QueryForm->Caption = QueryName;
//  QueryForm->QueryLabel->Caption = QueryText;
//QueryForm->Show();
  QueryForm->BKDatabase->AliasName = Alias;
  QueryForm->BKDatabase->Params->Values["USER"] = User;
  QueryForm->BKDatabase->Params->Values["PASSWORD"] = Password;
  QueryForm->Query->SQL->Text = QueryText;

  // Create the background thread to execute the query. Since the thread
  // will free itself on termination we do not need to maintain a reference
  // to it.  Creating it is enough
 new TQueryThread(QueryForm);
}









⌨️ 快捷键说明

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