//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "TfrmSetup.h"
#include "TfrmMain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmSetup *frmSetup;
//---------------------------------------------------------------------------
__fastcall TfrmSetup::TfrmSetup(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmSetup::btnQuitClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmSetup::FormCreate(TObject *Sender)
{
lblCount->Caption = "";
meDBServer->Text = frmMain->asDBServer;
meDBName->Text = frmMain->asDBName;
meDBUserId->Text = frmMain->asDBUserId;
meDBUserPwd->Text = frmMain->asDBUserPwd;
cbTableName->Items->Add(frmMain->asTableName);
cbTableName->ItemIndex = 0;
meOutFileName->Text = frmMain->asOutFileName;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmSetup::ValidValue()
{
if( meDBServer->Text.Trim() == "" )
{
ShowMessage("服务器地址不能为空!");
meDBServer->SetFocus();
return false;
}
frmMain->asDBServer = meDBServer->Text;
if( meDBName->Text.Trim() == "" )
{
ShowMessage("数据库名称不能为空!");
meDBName->SetFocus();
return false;
}
frmMain->asDBName = meDBName->Text;
if( meDBUserId->Text.Trim() == "" )
{
ShowMessage("用户名称不能为空!");
meDBUserId->SetFocus();
return false;
}
frmMain->asDBUserId = meDBUserId->Text;
frmMain->asDBUserPwd = meDBUserPwd->Text;
if( cbTableName->Text.Trim() == "" )
{
ShowMessage("导出表名称不能为空!");
cbTableName->SetFocus();
return false;
}
frmMain->asTableName = cbTableName->Text;
if( meOutFileName->Text.Trim() == "" )
{
ShowMessage("文件名称不能为空!");
meOutFileName->SetFocus();
return false;
}
frmMain->asOutFileName = meOutFileName->Text;
return true;
}
void __fastcall TfrmSetup::btnSaveClick(TObject *Sender)
{
if( ValidValue() == false )
{
return;
}
FILE *fp;
if( (fp=fopen(frmMain->asParamFileName.c_str(),"w+t")) == NULL )
{
ShowMessage("打开文件[" + frmMain->asOutFileName + "]失败!");
return;
}
fprintf(fp,"DBServer=%s\n",frmMain->asDBServer);
fprintf(fp,"DBName=%s\n",frmMain->asDBName);
fprintf(fp,"DBUserId=%s\n",frmMain->asDBUserId);
fprintf(fp,"DBUserPwd=%s\n",frmMain->asDBUserPwd);
fprintf(fp,"TableName=%s\n",frmMain->asTableName);
fprintf(fp,"SQL=\n");
fprintf(fp,"OutFileName=%s\n",frmMain->asOutFileName);
fclose(fp);
ShowMessage("保存参数成功!");
}
//---------------------------------------------------------------------------
void __fastcall TfrmSetup::btnBuildClick(TObject *Sender)
{
AnsiString asConnStr = PromptDataSource((int)Handle,WideString(""));
if( asConnStr == "" )
{
return;
}
ADOConnection1->Connected = false;
ADOConnection1->ConnectionString = asConnStr;
_di_Properties p = ADOConnection1->Properties;
OleVariant oleVar;
p->Item[AnsiString("Data Source")]->Get_Value(oleVar);
meDBServer->Text = WideString(oleVar);
p->Item[AnsiString("Initial Catalog")]->Get_Value(oleVar);
meDBName->Text = WideString(oleVar);
p->Item[AnsiString("User ID")]->Get_Value(oleVar);
meDBUserId->Text = WideString(oleVar);
p->Item[AnsiString("Password")]->Get_Value(oleVar);
meDBUserPwd->Text = WideString(oleVar);
cbTableName->Clear();
ADOConnection1->Connected = true;
qryTbl->Active = false;
qryTbl->Connection = ADOConnection1;
qryTbl->SQL->Text = "select name from sysobjects where xtype = 'U' ";
qryTbl->Open();
for(int i=0;i<qryTbl->RecordCount;i++ )
{
cbTableName->Items->Add(qryTbl->FieldByName("name")->AsString);
qryTbl->Next();
}
if( cbTableName->Items->Count > 0 )
cbTableName->ItemIndex = 0;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSetup::btnOpenClick(TObject *Sender)
{
if( SaveDialog1->Execute() == false )
return;
meOutFileName->Text = SaveDialog1->FileName;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSetup::btnExportClick(TObject *Sender)
{
if( ValidValue() == false )
{
return;
}
pbMain->Visible = true;
pbMain->Enabled = true;
Timer1->Enabled = true;
myThread = new TMyThread(true);
myThread->hWnd = this->Handle;
myThread->asDBServer = frmMain->asDBServer;
myThread->asDBName = frmMain->asDBName;
myThread->asDBUserId = frmMain->asDBUserId;
myThread->asDBUserPwd = frmMain->asDBUserPwd;
myThread->asOutFileName = frmMain->asOutFileName;
myThread->asSQL = frmMain->asSQL;
myThread->asTableName = frmMain->asTableName;
myThread->Resume();
}
//---------------------------------------------------------------------------
// 功能:处理线程退出消息
//---------------------------------------------------------------------------
MESSAGE void TfrmSetup::ThreadExitResponse(TMessage &Msg)
{
myThread->Terminate();
delete myThread;
ShowMessage("导出文件中成功!");
Timer1->Enabled = false;
pbMain->Enabled = false;
pbMain->Visible = false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSetup::Timer1Timer(TObject *Sender)
{
pbMain->Position += 10;
if( pbMain->Position >= pbMain->Max )
pbMain->Position = pbMain->Min;
Application->ProcessMessages();
}
//---------------------------------------------------------------------------