Minggu, 21 Juli 2013

DELPHI - Mengisi combobox dengan data dari tabel Database MySQL

Selamat pagi pemirsa :D

kali ini saya akan bagikan tentang memasukkan data dari tabel [database] ke dalam sebuah combobox
ya cara termudah menggunakan komponen dbCombobox, tapi cara ini menurut saya kurang efektif,
mengapa? karena dengan menggunakan dbCombobox, koneksi data akan terus terbuka, sehingga jika data yang ada banyak, akan sangat lambat dalam operasi select. insert, update
oleh karena itu, saya menggunakan komponen standar yaitu combobox.
oke langsung saja gan ni codingnya :

Procedure SQL(IsiSQL : String);
begin
  with form1 do
  begin
  adoQuery1.SQL.Clear;
  adoQuery1.SQL.Add(IsiSQL);
  adoQuery1.Open;
  end;
end;

Procedure IsiCombobox(Result : String);
begin
  with form1 do
  begin
  Combobox1.Items.Clear;
  while not adoQuery1.eof do
  begin
    Combobox1.items.add(Q.FieldByName(Result).Value);
    adoQuery1.Next;
  end;
  end;
end;

nah Result disana adalah sebuah parameter 
jadi kita bisa pakai function diatas berulang kali
misalnya :

kita ingin menampilkan daftar NAMA MAHASISWA dari tabel mahasiswa
maka implemetasinya : (asumsikan bahwa NAMA MAHASISWA berada di field NAMA

isi dulu SQLnya
SQL('SELECT * FROM mahasiswa');

IsiCombobox('NAMA');

nah kalo kita pengen ganti ke field lain, tinggal ubah lagi
IsiCombobox('ALAMAT');

Mudah kan pemirsa?
oke sekian dlu, saya lanjutin project lain dlu
terimakasih telah berkunjung di blog saya ^_^

14 komentar:

  1. kurang jelas gan, prosedur sql nya bikin prosedur lagi apa gmn?

    BalasHapus
    Balasan
    1. terimakasih telah membaca,
      diatas ada prosedur SQL, dibuatnya di delphi kok gan,
      seperti prosedur biasa, isikan parameter SQL dengan query yang kita perlukan
      kalo tidak mau pake procedure, seperti ini :

      contoh di event form show --

      adoQuery1.SQL.Clear;
      adoQuery1.SQL.Add('SELECT KTP, Nama, alamat FROM penduduk');
      adoQuery1.Open;

      //contoh memasukkan daftar nama ke combobox
      Combobox1.Items.Clear;
      while not adoQuery1.eof do
      begin
      Combobox1.items.add(Q.FieldByName('Nama').Value);
      adoQuery1.Next;
      end;

      Hapus
    2. maaf salah,
      Q disana diganti dengan AdoQuery1

      //contoh memasukkan daftar nama ke combobox
      Combobox1.Items.Clear;
      while not adoQuery1.eof do
      begin
      Combobox1.items.add(AdoQuery1.FieldByName('Nama').Value);
      adoQuery1.Next;
      end;

      Hapus
  2. Mas mau tanya..
    Apabila dlm 1 form sy ingin memunculkan Nama dari tabel Siswa dan Kelas dari table kelas, yang ditambahkan apanya yak..?

    BalasHapus
    Balasan
    1. artinya memunculkan field2 dr tabel yang berbeda di database

      Hapus
    2. Halo.. terimakasih telah berkunjung di giavano.blogspot.com

      Misalnya :
      NIS dari tabel SISWA
      NIP dari tabel GURU

      contoh di event form show --

      adoQuery1.SQL.Clear;
      adoQuery1.SQL.Add('SELECT nis FROM siswa');
      adoQuery1.Open;

      //contoh memasukkan daftar nama ke combobox
      Combobox1.Items.Clear;
      while not adoQuery1.eof do
      begin
      Combobox1.items.add(ADOQuery1.FieldByName('NIS').Value);
      adoQuery1.Next;
      end;

      kemudian masih di event yang sama, atau dibawahnya,

      adoQuery1.SQL.Clear;
      adoQuery1.SQL.Add('SELECT nip FROM guru');
      adoQuery1.Open;

      //contoh memasukkan daftar nama ke combobox
      Combobox1.Items.Clear;
      while not adoQuery1.eof do
      begin
      Combobox2.items.add(ADOQuery1.FieldByName('NIP').Value);
      adoQuery1.Next;
      end;

      coding itu masih bisa disederhanakan, silahkan bereksplorasi,,

      Hapus
    3. maaf yang kedua bukan Combobox1.Items.clear, tapi Combobox2.items.clear.
      silahkan disesuaikan

      Hapus
    4. maaf yang kedua bukan Combobox1.Items.clear, tapi Combobox2.items.clear.
      silahkan disesuaikan

      Hapus
  3. terima kasih, sangat membantu.. tapi ada sedikit keinginan untuk membuat combobox yang isinya hanya data unik saja, contoh ada field jurusan yang isinya : TKJ,TKJ,TKR,TKJ,TKR,GEO,TKR,GEO...dst..
    agar yang tampil di combobox : TKJ,TKR,GEO saja..
    trims sebelumnya..

    BalasHapus
    Balasan
    1. Halo trimakasih sudah berkunjung d blog saya.
      Cpba pakai select fistinct..
      Biasanya untuk kasus seperti itu, di database saya buat ytabel baru lagi, yg disebut helper.
      Jadi bila suatu saat ada pertambahan kategori, ckup tambahkan saja di tabel helper.

      Hapus
    2. Maksudnya

      Select distinct

      Maaf ngetik di hape jd begini nih.. hehe

      Hapus
  4. pagi mas.....aku ada masalh nie mas.....bagaimana caranya data dari tabel mahasiswa yang relasinya ke matakuliah dimana di tabel matakuliah nim dan nama hanya dipilih dan combobox diisi denga data nim,jika nim di click maka nama otomatis muncul pada edit text.....tolong mas...!!!!!!!! makasih...

    BalasHapus
  5. sukses tutornya gan..
    btw kalo mau nampilin data dari combobox ke edit nya gmna ya..
    misal data combobox : "SUP001" pas dipilih muncul di edit nya NAMA : PT. TALAK TILU
    makasih..

    BalasHapus
  6. kurang jelas prosedur caranya itu cuman di scriptnya aja

    BalasHapus