?? mainform.pas
字號:
////////////////////////////////////////////////////////
// //
// 使用控件: //
// Express Editors //
// RX Control //
// //
////////////////////////////////////////////////////////
unit MainForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, dxEditor, dxExEdtr, dxEdLib, dxCntner, DB, ADODB,
Buttons, ExtDlgs, ExtCtrls, ImgList, Menus, RXCtrls, Animate, GIFCtrl,
RzButton, RzBHints, RzBckgnd;
type
TfrmMainForm = class(TForm)
ADOConnection: TADOConnection;
Executeqry: TADOQuery;
Panel1: TPanel;
OpenSQLFileDlg: TOpenDialog;
ImageList: TImageList;
Panel2: TPanel;
GroupBox1: TGroupBox;
btBrowse: TSpeedButton;
btBuild: TSpeedButton;
edDataLinkFile: TdxEdit;
edConnectionString: TdxEdit;
UseDataLinkFile: TRadioButton;
UseConnectionString: TRadioButton;
GroupBox2: TGroupBox;
Label3: TLabel;
btSelectSQLFile: TSpeedButton;
Label1: TLabel;
edLoopTimes: TdxSpinEdit;
edIntervalTime: TdxSpinEdit;
edSQLFile: TdxEdit;
UseSQLFile: TRadioButton;
UseSQLEdit: TRadioButton;
edSQLEdit: TdxMemo;
Panel3: TPanel;
RunTimeList: TdxMemo;
Panel4: TPanel;
SaveRunTimeListDlg: TSaveDialog;
MsgImageList: TImageList;
MsgImage: TImage;
MsgText: TRxLabel;
ProcessAnimator: TRxGIFAnimator;
btRun: TRzBitBtn;
btStop: TRzBitBtn;
btClose: TRzBitBtn;
btClear: TRzBitBtn;
btSave: TRzBitBtn;
btUserNamePwdClear: TRzBitBtn;
RzBalloonHints1: TRzBalloonHints;
procedure UseDataLinkFileClick(Sender: TObject);
procedure UseConnectionStringClick(Sender: TObject);
procedure btBrowseClick(Sender: TObject);
procedure btBuildClick(Sender: TObject);
procedure btSelectSQLFileClick(Sender: TObject);
procedure btRunClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btCloseClick(Sender: TObject);
procedure UseSQLFileClick(Sender: TObject);
procedure UseSQLEditClick(Sender: TObject);
procedure btClearClick(Sender: TObject);
procedure btStopClick(Sender: TObject);
procedure btSaveClick(Sender: TObject);
procedure btUserNamePwdClearClick(Sender: TObject);
private
{ Private declarations }
function GetConnection:Boolean;
function TestSQLFile:Boolean;
function GetSqlFromSQLFile:Boolean;
function GetSqlFromSQLEdit:Boolean;
function GetSql:Boolean;
function ExecuteSQL:Boolean;
function EnterUserNamePwd:Boolean;
procedure ClearUserNamePwd;
procedure AddRunTimeToMemo;
procedure SaveConnectionString;
procedure SaveConnectionFile;
procedure SaveSQLString;
procedure SaveUserNamePwd;
procedure SaveInformation;
procedure LoadConnectionString;
procedure LoadConnectionFile;
procedure LoadSQLString;
procedure LoadInformation;
procedure SetControlEnabled(Enable:Boolean);
procedure ClearMsg;
procedure ShowMsg(State:integer);
public
{ Public declarations }
end;
var
frmMainForm: TfrmMainForm;
implementation
uses
Login;
{$R *.dfm}
Const
CONNECTIONString_FILE_NAME='ConnectionStringFile.ini';
CONNECTIONFILE_FILE_NAME='ConnectionFile.ini';
SQL_FILE_NAME='SQLFile.ini';
USERNAMEPWD_FILE_NAME='UserNamePwdFile.ini';
//運行結果
SUCCESS=0;
STOP=1;
FAILURE=2;
var
RunTime:TDateTime; //運行時間
StartTime,EndTime:TDateTime; //開始時間,結束時間
Times:integer; //運行次數
IsStop:Boolean;
UserName,Pwd:string;
OldConnectionString,OldConnectionFile:string;
procedure TfrmMainForm.UseDataLinkFileClick(Sender: TObject);
const
EnabledColor: array[Boolean] of TColor = (clBtnFace, clWindow);
begin
edDataLinkFile.Enabled := UseDataLinkFile.Checked;
edDataLinkFile.Color := EnabledColor[edDataLinkFile.Enabled];
btBrowse.Enabled := edDataLinkFile.Enabled;
edConnectionString.Enabled := UseConnectionString.Checked;
edConnectionString.Color := EnabledColor[edConnectionString.Enabled];
btBuild.Enabled := edConnectionString.Enabled;
if edDataLinkFile.Enabled then
ActiveControl := edDataLinkFile
else
ActiveControl := edConnectionString;
ClearUserNamePwd;
end;
procedure TfrmMainForm.UseConnectionStringClick(Sender: TObject);
const
EnabledColor: array[Boolean] of TColor = (clBtnFace, clWindow);
begin
edDataLinkFile.Enabled := UseDataLinkFile.Checked;
edDataLinkFile.Color := EnabledColor[edDataLinkFile.Enabled];
btBrowse.Enabled := edDataLinkFile.Enabled;
edConnectionString.Enabled := UseConnectionString.Checked;
edConnectionString.Color := EnabledColor[edConnectionString.Enabled];
btBuild.Enabled := edConnectionString.Enabled;
if edDataLinkFile.Enabled then
ActiveControl := edDataLinkFile
else
ActiveControl := edConnectionString;
ClearUserNamePwd;
end;
procedure TfrmMainForm.btBrowseClick(Sender: TObject);
begin
edDataLinkFile.Text := PromptDataLinkFile(Handle, edDataLinkFile.Text);
end;
procedure TfrmMainForm.btBuildClick(Sender: TObject);
begin
edConnectionString.Text := PromptDataSource(Handle, edConnectionString.Text);
end;
function TfrmMainForm.GetConnection:Boolean;
var
testqry:TADOQuery;
begin
result:=False;
Application.ProcessMessages;
//采用鏈接字符串
if UseConnectionString.Checked then
begin
if trim(edConnectionString.Text) <> '' then
begin
if ((OldConnectionString <> trim(edConnectionString.Text)) or
(trim(ADOConnection.ConnectionString) = '')) then
begin
ADOConnection.Close;
ADOConnection.ConnectionString:= edConnectionString.Text;
OldConnectionString:=edConnectionString.Text;
end
end
else
begin
{
if messagedlg('連接字符串為空,是否建立連接?',mtwarning,[mbYes, mbNo],0)=mrYes then
btBuild.Click
else
}
Application.MessageBox('連接字符串為空,請先建立連接!','錯誤');
Exit;
end;
end
//采用鏈接文件
else
begin
if trim(edDataLinkFile.Text) <> '' then
begin
if ((OldConnectionFile <> trim(edDataLinkFile.Text)) or
(trim(ADOConnection.ConnectionString) = '')) then
begin
ADOConnection.Close;
ADOConnection.ConnectionString:= 'FILE NAME='+edDataLinkFile.Text;
OldConnectionFile:=edDataLinkFile.Text;
end
end
else
begin
{
if messagedlg('連接文件為空,是否建立連接?',mtwarning,[mbYes, mbNo],0)=mrYes then
btBrowse.Click
else
}
Application.MessageBox('連接文件為空,請先建立連接!','錯誤');
Exit;
end;
end;
//test connection
if not EnterUserNamePwd then
Exit;
Application.ProcessMessages;
try
ADOConnection.Open(UserName,Pwd);
if not ADOConnection.Connected then
begin
Application.MessageBox('連接失敗,請重新連接!','錯誤');
Exit;
end;
except
Application.MessageBox('連接失敗,請重新連接!','錯誤');
Exit;
end;
Executeqry.Connection:=ADOConnection;
result:=true;
end;
/////////////
function TfrmMainForm.TestSQLFile: Boolean;
var
SQLFileName:String;
isFileExist:Boolean;
begin
result:=False;
SQLFileName:=edSQLFile.Text;
if trim(SQLFileName) = '' then
if messagedlg('未選擇sql文件,是否現在選擇?',mtwarning,[mbYes, mbNo],0)=mrYes then
btSelectSQLFile.Click
else
Exit;
isFileExist:=FileExists(SQLFileName);
if not isFileExist then
if messagedlg('sql文件不存在,是否重新選擇?',mtwarning,[mbYes, mbNo],0)=mrYes then
btSelectSQLFile.Click
else
Exit;
result:=isFileExist;
end;
function TfrmMainForm.GetSqlFromSQLFile: Boolean;
var
SQLFileName:String;
begin
result:=False;
//檢查文件
if not TestSQLFile then
Exit;
//清空sql
Executeqry.SQL.Clear;
//載入文件
SQLFileName:=edSQLFile.Text;
Executeqry.SQL.LoadFromFile(SQLFileName);
result:=True;
end;
function TfrmMainForm.GetSqlFromSQLEdit: Boolean;
begin
result:=False;
//是否有sql語句
if edSQLEdit.Lines.Count <= 0 then
begin
Application.MessageBox('沒有SQL語句!','錯誤');
Exit;
end;
//清空sql
Executeqry.SQL.Clear;
//載入sql
Executeqry.SQL.AddStrings(edSQLEdit.Lines);
result:=True;
end;
function TfrmMainForm.GetSql: Boolean;
begin
result:=False;
if UseSQLFile.Checked then
result:=GetSQLFromSQLFile;
if UseSQLEdit.Checked then
result:=GetSQLFromSQLEdit;
end;
///////
function TfrmMainForm.ExecuteSQL: Boolean;
var
Loop,ExecuteTimes:integer;
IntervalTime:integer;
begin
result:=False;
//Query鏈接
if not GetConnection then
Exit;
ProcessAnimator.Visible:=True;
//載入SQL
if not GetSql then
Exit;
//得到執行次數
ExecuteTimes:=edLoopTimes.IntValue;
//得到間隔時間
IntervalTime:=edIntervalTime.IntValue;
//得到開始運行時間
StartTime:=Time();
//執行sql
try
for Loop:=1 to ExecuteTimes do
begin
Executeqry.ExecSQL;
Sleep(IntervalTime*1000);
Application.ProcessMessages;
if IsStop then
Break;
end;
except
Exit;
end;
//得到結束運行時間按
EndTime:=Time();
Executeqry.Close;
//ADOConnection.Close;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -