📄 mainunit.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 + -