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

📄 mainunit.cpp

📁 用ADO 动态连接各种异构数据库查询数据生成sql插入insert语句。
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "MainUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "DBGridEh"
#pragma link "CGAUGES"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BrowseClick(TObject *Sender)
{
/*   if(OpenD->Execute())
   {
      SourceFile->Text=OpenD->FileName;
      ADOXML->LoadFromFile(OpenD->FileName);
   }*/
   ADOConnection1->Close();
   ADOConnection1->ConnectionString=PromptDataSource((int)Handle,"");
   ADOConnection1->Open();
   if(ADOConnection1->Connected)
     ADOConnection1->GetTableNames(SourceFile->Items);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   if(ADOXML->RecordCount<1)
      return;
   SQLMemo->Clear();
   Progress->MaxValue=ADOXML->RecordCount;
   AnsiString Table=ExtractFileName(SourceFile->Text);
//   int iPos=Table.Pos(".");
//   Table=Table.SubString(1,iPos-1);

   AnsiString SqlTemplate="insert into ["+Table+"] (";
   for(int i=0;i<ADOXML->Fields->Count-1;i++)
     SqlTemplate=SqlTemplate+ADOXML->Fields->Fields[i]->FieldName+",";
   SqlTemplate=SqlTemplate+ADOXML->Fields->Fields[ADOXML->Fields->Count-1]->FieldName+") values(";

   ADOXML->First();
   int iCount=0;
   AnsiString SQL;
   while(!ADOXML->Eof)
   {
      SQL=SqlTemplate;
      for(int i=0;i<ADOXML->Fields->Count-1;i++)
      {
/*         if(ADOXML->Fields->Fields[i]->DataType==ftDateTime)
            SQL=SQL+"to_date('"+ADOXML->Fields->Fields[i]->AsString+"','yyyy-mm-dd'),";
         else*/
            SQL=SQL+"'"+ADOXML->Fields->Fields[i]->AsString+"',";
      }
/*      if(ADOXML->Fields->Fields[ADOXML->Fields->Count-1]->DataType==ftDateTime)
         SQL=SQL+"to_date('"+ADOXML->Fields->Fields[ADOXML->Fields->Count-1]->AsString+"','yyyy-mm-dd')) ";
      else*/
         SQL=SQL+"'"+ADOXML->Fields->Fields[ADOXML->Fields->Count-1]->AsString+"') ";
      iCount++;
      Progress->Progress=iCount;
      ADOXML->Next();
      Application->ProcessMessages();
      SQLMemo->Lines->Add(SQL);
   }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ExportClick(TObject *Sender)
{
   Progress->MaxValue=SQLMemo->Lines->Count;
   Progress->Progress=0;
   for(int i=0;i<SQLMemo->Lines->Count;i++)
   {
      ExportQuery->SQL->Text=SQLMemo->Lines->Strings[i];
      ExportQuery->ExecSQL();
      Progress->Progress=Progress->Progress+1;
      Application->ProcessMessages();
   }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SourceFileChange(TObject *Sender)
{
   if(Trim(SourceFile->Text)!=""&&ADOConnection1->Connected)
   {
      ADOXML->Close();
      ADOXML->TableName="["+Trim(SourceFile->Text)+"]";
      ADOXML->Open();
   }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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