Welcome

Welcome, thanks to look my blog

Tuesday, 8 December 2015

koneksi aplikasi delphi di computer client

Save Setting Koneksi ke File INI

Zeos Connection Settings
Zeos Connection Settings
Teman-teman Delphier kerap bertanya, “Bagaimana mengatur aplikasi Delphi-Zeos-MySQL agar dapat berjalan di pc lain tanpa perlu menginstall Delphi di sana?”
Di posting tentang koneksi Delphi-Zeos-MySQL, Anda dapat melihat file-file depencies (pendukung) aplikasi baik program Anda maupun MySQL.
Kini, giliran setting koneksi yang akan kita bahas. Mulai dari mengetes koneksi, menyimpannya ke file INI/CFG, sampai membacanya kembali.
MENGETES KONEKSI
Pertama, kita mengetes koneksi (Zeos) dengan cara seperti berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
if ZConnection1.Connected then
ZConnection1.Disconnect;
ZConnection1.HostName := 'localhost';
ZConnection1.User     := 'root';
ZConnection1.Password := 'YOUR_PASSWORD';
ZConnection1.Port     := 3306;
ZConnection1.Database := 'simpeg';
try
ZConnection1.Connect;
ShowMessage('Terkoneksi.');
except
ShowMessage('Gagal koneksi.');
end;
Bila parameter koneksi benar, kita akan mendapatkan pesan seperti berikut:
Save Setting Koneksi ke File INI
Save Setting Koneksi ke File INI
MENYIMPAN SETTING KONEKSI KE FILE
Nah, kini kita buat sebuah form baru dengan inputan parameter koneksi:
Desain Form Parameter Koneksi
Desain Form Parameter Koneksi
Di atas, Edit1 (Server Name/IP) telah memiliki nilai default localhost, Edit2 telah bernilai default port MySQL 3306, dan Edit3 (Username) bernilai defaultroot.
Kini kita buat kode untuk menyimpan setting koneksi ke file konfigurasi. Nama file dan ekstensinya terserah Anda. Saya akan menggunakan nama file yang sama dengan nama projek (nama file EXE), menggunakan ekstensi .SAV, sehingga bila nama projek adalah Project1 maka nama file EXE adalah Project1.exe dan nama file konfigurasi koneksi bernama Project1.sav.
Saatnya koding :)
Format file yang akan kita pakai bukan file INI yang beformat:
1
2
3
4
[SETTINGS]
server=localhost
port=3306
............. dst.
Melainkan file berformat flat, yaitu pasangan nama:nilai, dengan tanda titik ganda (:) sebagai pemisah.
1
2
3
4
5
6
#INI ADALAH KOMENTAR
server=localhost
port=3306
............. dst.
%INI KOMENTAR
//INI JUGA KOMENTAR
Klik ganda tombol Save Setting, ketikkan kode seperti berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
procedure TForm1.Button2Click(Sender: TObject);
var
NamaFile: String;
List: TStringList;
begin
//File berada dalam satu folder dengan aplikasi
NamaFile := Application.ExeName;
//ganti nama file dengan ekstensi .sav
NamaFile := ChangeFileExt(NamaFile, '.sav');
 
//Buat List untuk menampung setting koneksi
List := TStringList.Create;
try
//tentukan tanda ":" sebagai pemisah nama dan nilai
List.NameValueSeparator := ':';
//tampung parameter
List.Add('hostname:' + Edit1.Text);
List.Add('port:'     + Edit2.Text);
List.Add('user:'     + Edit3.Text);
List.Add('password:' + Edit4.Text);
List.Add('database:' + Edit5.Text);
//Save ke file
try
List.SaveToFile(NamaFile);
ShowMessage('Setting koneksi tersimpan ke file :'#13 + NamaFile);
except
ShowMessage('Gagal menyimpan seeting koneksi.');
end;
finally
//Jangan lupa membebaskan memory
List.Free;
end;
end;
Kini yang jadi soal, bagaimana jika Edit2 (Port) tidak diisi dengan angka? Kita tambahkan kode untuk mencegahnya. Klik pada Edit2 (Port), dari Object Inspector klik tab Events dan klik ganda pada event OnKeyPress. Masukkan kode:
1
2
3
4
5
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8, Chr(VK_DELETE)]) then
Key := #0;
end;
Klik lagi pada Edit2 (Port) dan property Max Length disi dengan nilai 4, sehingga panjang nilai yang dapat diinput dibatasi sampai 4 digit angka. Ini berguna mencegah integer overflow jika nilai diisi terlalu besar.
Sampai di sini, silahkan jalankan program Anda dan coba Save Settingnya. Bila berhasil, pesan sukses seperti berikut akan ditampilkan dan sebuah file Project1.sav akan dibuat dalam folder yang sama dengan folder program.
Setting koneksi telah disimpan
Setting koneksi telah disimpan
MEMBACA KONEKSI TERSIMPAN
Saatnya kuis. Eh, saatnya membaca kembali setting koneksi tadi :)
Langsung saja, klik ganda tombol Load Setting dan masukkan kode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
procedure TForm1.Button3Click(Sender: TObject);
var
NamaFile: String;
List: TStringList;
begin
//File berada dalam satu folder dengan aplikasi
NamaFile := Application.ExeName;
//ganti nama file dengan ekstensi .sav
NamaFile := ChangeFileExt(NamaFile, '.sav');
 
//Buat List untuk menampung setting koneksi
List := TStringList.Create;
try
//tentukan tanda ":" sebagai pemisah nama dan nilai
List.NameValueSeparator := ':';
//Load setting dari ke file
try
List.LoadFromFile(NamaFile);
//tampung parameter
Edit1.Text := List.Values['hostname'];
Edit2.Text := List.Values['port']    ;
Edit3.Text := List.Values['user']    ;
Edit4.Text := List.Values['password'];
Edit5.Text := List.Values['database'];
ShowMessage('Setting koneksi telah di-load dari file :'#13 + NamaFile);
except
ShowMessage('Gagal membaca setting koneksi.');
end;
finally
//Jangan lupa membebaskan memory
List.Free;
end;
Selanjutnya untuk tombol Login:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm1.Button1Click(Sender: TObject);
begin
if ZConnection1.Connected then
ZConnection1.Disconnect;
ZConnection1.HostName := Edit1.text;
ZConnection1.Port     := StrToInt(Edit2.Text);
ZConnection1.User     := edit3.Text;
ZConnection1.Password := Edit4.Text;
ZConnection1.Database := Edit5.text;
try
ZConnection1.Connect;
ShowMessage('Terkoneksi.');
except
ShowMessage('Gagal koneksi.');
end;
end;
Demikian tulisan sederhana ini, menjawab pertanyaan seorang pengunjung. Semoga sukses buat Anda Delphier Indonesia :)
Download
Bila Anda tertarik untuk mengunduh, semoga link berikut masih aktif. Luck for you :)
sumber: https://jokorb.wordpress.com/2011/08/06/save-setting-koneksi-ke-file-ini/

No comments:

Post a Comment