Sie sind auf Seite 1von 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;

Das könnte Ihnen auch gefallen