//备份数据库过程
procedure TfrmInstall.doExportDataBase;
var
scmd: String;
iret: Cardinal;
begin
try
scmd := SysUtils.Format(' mysqldump -h%s -P %s -u%s -p%s -B %s > %s',
[Self.edtIp.Text, Self.edtPort.Text, Self.edtUser.Text,
Self.edtPassword.Text, Self.edtDataBase.Text, Self.edtFile.Text]);
iret := ShellExecute(Self.Handle, 'open', 'cmd.exe', pchar('/c ' + scmd),
pchar(''), SW_HIDE);
if iret < 32 then
begin
// showmessage('ret = ' + IntToStr(iret));
raise Exception.Create('导入脚本不合法');
end;
ShowMessage('备份数据库成功');
except
on E: Exception do
begin
ShowMessage('导入数据库失败,错误原因:' + E.Message);
exit;
end;
end;
end;
//创建数据库及导入过程
procedure TfrmInstall.doImportMysql;
var
slist: TStrings;
stmp, scmd: String;
iret: Cardinal;
begin
if Self.SQLConnection1.Connected then
Self.SQLConnection1.Close;
Self.SQLConnection1.Params.Clear;
Self.SQLConnection1.Params.Append('DriverName=MySQL');
Self.SQLConnection1.Params.Append(SysUtils.Format('HostName=%s',
[Self.edtIp.Text]));
Self.SQLConnection1.Params.Append(SysUtils.Format('Database=%s', ['mysql']));
Self.SQLConnection1.Params.Append(SysUtils.Format('User_Name=%s',
[Self.edtUser.Text]));
Self.SQLConnection1.Params.Append(SysUtils.Format('Password=%s',
[Self.edtPassword.Text]));
Self.SQLConnection1.Params.Append(SysUtils.Format('DriverName=MySQL', []));
Self.SQLConnection1.Params.Append(SysUtils.Format('DriverName=MySQL', []));
Self.SQLConnection1.Params.Append('ServerCharSet=');
Self.SQLConnection1.Params.Append('BlobSize=-1');
Self.SQLConnection1.Params.Append('ErrorResourceFile=');
Self.SQLConnection1.Params.Append('LocaleCode=0000');
Self.SQLConnection1.Params.Append('Compressed=False');
Self.SQLConnection1.Params.Append('Encrypted=False');
Self.SQLConnection1.Params.Append('ConnectTimeout=60');
try
Self.SQLConnection1.Connected := true;
except
on E: Exception do
begin
ShowMessage('连接失败,错误原因:' + E.Message);
exit;
end;
end;
stmp := SysUtils.Format('create database %s', [Self.edtDataBase.Text]);
try
Self.SQLConnection1.ExecuteDirect(stmp);
except
on E: Exception do
begin
if pos('database exists', E.Message) < 0 then
begin
ShowMessage('创建数据库失败,错误原因:' + E.Message);
exit;
end;
end;
end;
if not FileExists(Self.edtFile.Text) then
raise Exception.Create('待导入的文件不存在');
try
try
scmd := SysUtils.Format(' mysql -h%s -P %s -u%s -p%s -B %s < %s',
[Self.edtIp.Text, Self.edtPort.Text, Self.edtUser.Text,
Self.edtPassword.Text, Self.edtDataBase.Text, Self.edtFile.Text]);
iret := ShellExecute(Self.Handle, 'open', 'cmd.exe', pc