Anda di halaman 1dari 1

Backup MYSQL Delphi dengan ZEOS

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('yyyymm-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;