100% found this document useful (1 vote)
451 views4 pages

Backup Mysql Delphi

The document contains code for backing up and restoring a MySQL database. It includes procedures for: 1) Creating a backup file of the database by dumping the data and structure to a .sql file using mysqldump. 2) Creating a batch file to execute the mysqldump command and store the backup file. 3) Restoring the database by executing the SQL dump file using mysql.

Uploaded by

pemburudollar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
451 views4 pages

Backup Mysql Delphi

The document contains code for backing up and restoring a MySQL database. It includes procedures for: 1) Creating a backup file of the database by dumping the data and structure to a .sql file using mysqldump. 2) Creating a batch file to execute the mysqldump command and store the backup file. 3) Restoring the database by executing the SQL dump file using mysql.

Uploaded by

pemburudollar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 4

procedure TfrmUtama.

BackupExecute(Sender: TObject);
var
temp_dir : string;
f:textfile;
n_drive,n2_drive,temp_command,command_encrypt,temp_tgl : string;
begin
if dmDatabase.ShowKonfirmasi('Data akan di-backup ?')=mrYes then
begin
//rawat := 1;
temp_tgl := IntToStr(DayOf(date))+IntToStr(MonthOf(date))
+IntToStr(YearOf(date));
if not DirectoryExists(path_backup) then
begin
temp_dir := path_backup;
mkdir(temp_dir);
end;
if not DirectoryExists(path_backup+'\'+temp_tgl) then
begin
temp_dir := path_backup + '\' +temp_tgl;
mkdir(temp_dir);
end;
temp_command := 'mysqldump --user='+udmDatabase.strUser+'
--password='+
udmDatabase.strPass+' --no-data --database anda >
'+path_backup+'\'+temp_tgl+'\'+temp_tgl+'.sql';
AssignFile(f,'c:\backup.bat');
rewrite(f);
writeln(f,'c:');
writeln(f,'cd '+path_mysql);
writeln(f,temp_command);
closefile(f);
winexec(pChar('c:/backup.bat'),sw_show);
// Application.Terminate;
end;
end;

procedure TfrmUtama.RestoreExecute(Sender: TObject);


var
f : textfile;
temp_command : string;
begin
if dmDatabase.ShowKonfirmasi('Data akan di-restore ?')=mrYes then
begin
If dmDatabase.OpenDialog1.Execute then
IF FileExists(dmDatabase.OpenDialog1.FileName) then
begin
temp_command := 'mysql --user=root --password=root temanggung <
'+LEFTSTR(dmDatabase.OpenDialog1.FileName,LENGTH(dmDatabase.OpenDialog1.
FileName)-4);
AssignFile(f,'c:\restore.bat');
rewrite(f);
writeln(f,'C:');
writeln(f,'cd '+path_mysql);
writeln(f,temp_command+'.sql');
closefile(f);
winexec(pChar('c:/restore.bat'),SW_SHOW);
end;
end;
end;

procedure TfrmMain.btnBackupClick(Sender: TObject);


var
fileName: String;
begin
if saveDlg.Execute then
begin
fileName:=saveDlg.FileName;
fileName:='/c mysqldump -u root psb_db > '+fileName;
ShellExecute(Handle,'open','cmd',PAnsiChar(fileName),nil,SW_HIDE);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);


var
F: TextFile;
param: String;
begin
if SaveDialog1.Execute then
begin
AssignFile(F,'C:\backup.bat');
Rewrite(F);
param:='mysqldump -u root psb_db > "'+SaveDialog1.FileName+'"';
//format paramater => mysqldump -u user -p password nama_database >
nama_backup.sql
Write(F,param);
CloseFile(F);
ShellExecute(Handle,'open','C:\backup.bat',nil,nil,SW_HIDE);
end;
end;

procedure TfrmMain.BackupDatabase1Click(Sender: TObject);


begin
ShellExecute(Handle, open, PChar(cmd.exe), PChar(/c mysqldump -h + <DBHost>
+ -u + <DBUser> + -p +
<DBPassword> + -K -R triggers + <DBName> + > c:\database.sql), nil,
SW_SHOW);
CommonDlg.ShowMessage(Database berhasil dibackup dan disimpan di
c:\database.sql);
end;

procedure Tf_back_import.uiButton2Click(Sender: TObject);


begin
SaveDialog1.Execute;
if not konek then exit;
ZConnection1.Disconnect;
ZConnection1.Database:='toko_1_3';
try ZConnection1.Connect
except messagedlg('Database Not Found',mterror,[mbok],0);
end;
HASILNYA :='';
with ZQuery2 do
begin
close;
sql.Text:='show tables';
open;
first;
HASILNYA:=HASILNYA+'create database toko_1_3;'+chr(13);
HASILNYA:=HASILNYA+'use toko_1_3;'+chr(13);
while not eof do
Begin
buat_table(fields[0].asstring);
Next;
end
end;
Memo1.Lines.Text:=HASILNYA;
if not otomatis then

Memo1.Lines.SaveToFile(SaveDialog1.FileName) messagedlg('DATABASE
EXPORTED TO sid FILE',mtinformation,[mbok],0);
ZConnection1.Disconnect;
end;
procedure Tf_back_import.buat_table(nama_table:string); var key:string; kolom,i:integer;
type_tanggal: array [0..10000]of string; begin with ZQuery1 do begin close;
sql.Text:='show keys from `'+nama_table+'`'; open; key:=fields[0].AsString; close;
sql.Text:='show columns from `'+nama_table+'`'; open; kolom:=recordcount; first;
HASILNYA:=HASILNYA+'CREATE TABLE `'+nama_table+'` ('; while not eof do
begin HASILNYA:=HASILNYA+chr(13);
HASILNYA:=HASILNYA+'`'+fields[0].asstring+'` '+fields[1].asstring; {cek jika null
atau tidak} if fields[2].AsString='' then HASILNYA:=HASILNYA+' NOT NULL ';
{TAMBAHKAN DEFAULT JIKA BUKAN TYPE text} if fields[1].AsString<>'text'then
begin if (fields[4].AsString='') then begin if fields[2].AsString='' then
HASILNYA:=HASILNYA+' Default '+'''''' else HASILNYA:=HASILNYA+' Default
NULL' end else HASILNYA:=HASILNYA+' Default '''+fields[4].AsString+''''; end; {jika
terakhir kali maka kosong aja jika tidak kasih koma} if RecNo<>RecordCount then
HASILNYA:=HASILNYA+','; Next; end; HASILNYA:=HASILNYA+');';
HASILNYA:=HASILNYA+chr(13); {tambahkan key jika ada} close; sql.Text:='show
keys from `'+nama_table+'`'; open; if recordcount<>0 then begin
HASILNYA:=HASILNYA+'ALTER TABLE '+nama_table+' ADD PRIMARY KEY (';
while not eof do begin {tambahkan index jika ada}
HASILNYA:=HASILNYA+'`'+Fields[4].AsString+'`'; if RecNo<>RecordCount then
HASILNYA:=HASILNYA+','; Next; end; HASILNYA:=HASILNYA+');'; end;
HASILNYA:=HASILNYA+chr(13)+chr(13); f_utama.detail.Close;
f_utama.detail.sql.Text:='show columns from `'+nama_table+'`'; f_utama.detail.Open;
f_utama.detail.First; i:=1; while not f_utama.detail.Eof do begin type_tanggal[i1]:=f_utama.detail.Fields[1].AsString; i:=i+1; f_utama.detail.Next; end; {input data}
close; sql.Text:='select * from '+nama_table+''; open; first; while not eof do begin
HASILNYA:=HASILNYA+'INSERT INTO '+nama_table+' VALUES ('; for i:=1 to
kolom do begin if type_tanggal[i-1] = 'date' then
HASILNYA:=HASILNYA+'"'+formatdatetime('yyyy-mm-dd',Fields[i-1].asdatetime)+'"'
else HASILNYA:=HASILNYA+'"'+Fields[i-1].AsString+'"'; if i<>kolom then
HASILNYA:=HASILNYA+','; end; HASILNYA:=HASILNYA+');';
HASILNYA:=HASILNYA+chr(13)+chr(13); Next; end; end; end;

You might also like