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[i-1]:=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;