Show Database From Query to Stringgrid

Dalam kasus ini saya menggunakan database MySQL dengan koneksi database menggunakan Zeos.

Pastikan database server sudah aktif jika anda menggunakan XAMPP

Untuk menampilkan data dari ZQuery ke TStringGrid, Anda harus secara manual melakukan iterasi (perulangan) pada hasil query dan memasukkan datanya ke dalam sel-sel TStringGrid karena TStringGrid tidak memiliki koneksi data langsung seperti TDBGrid.
Buat Project baru kemudian simpan, lalu pada form tambahkan beberapa component berikut ini :
  1. TZConnection: Untuk koneksi ke database.
  2. TZQuery: Dinamai ZQuery1 (atau sesuaikan namanya).
  3. TStringGrid: Dinamai StringGrid1 (atau sesuaikan namanya).
  4. TButton: Untuk memicu proses penampilan data.

Setelah component sudah ada pada form , klik button1 lalu ke jendela propertis di event Button1onclcik buat code berikut :

procedure TForm1.Button1Click(Sender: TObject);
var
  i, Row: Integer;
begin
  // Pastikan koneksi aktif dan query telah diatur SQL-nya
  if not ZConnection1.Connected then
    ZConnection1.Connect;

  ZQuery1.Close;
  ZQuery1.SQL.Clear;
  ZQuery1.SQL.Add('SELECT * FROM TPEGAWAI'); // Ganti dengan query Anda
  ZQuery1.Open;

  // Mengatur jumlah kolom di StringGrid sesuai dengan jumlah field hasil query
  StringGrid1.ColCount := ZQuery1.FieldCount;
  // Mengatur jumlah baris awal (FixedRows + jumlah record)
  StringGrid1.RowCount := 1 + ZQuery1.RecordCount;

  // Mengisi header kolom (baris pertama, indeks 0)
  for i := 0 to ZQuery1.FieldCount - 1 do
  begin
    StringGrid1.Cells[i, 0] := ZQuery1.Fields[i].FieldName;
  end;

  // Mengisi data dari ZQuery ke StringGrid (mulai dari baris indeks 1)
  Row := 1;
  ZQuery1.First; // Pindah ke record pertama
  while not ZQuery1.Eof do
  begin
    for i := 0 to ZQuery1.FieldCount - 1 do
    begin
      // Mengambil data dari field saat ini dan memasukkannya ke sel StringGrid
      StringGrid1.Cells[i, Row] := ZQuery1.Fields[i].AsString;
    end;
    Inc(Row); // Pindah ke baris berikutnya di StringGrid
    ZQuery1.Next; // Pindah ke record berikutnya di ZQuery
  end;

  // Tutup query setelah selesai
  ZQuery1.Close;
end;


Keterangan Code :
  1. Koneksi dan Query: Kode memastikan koneksi database aktif, mengatur perintah SQL, dan membuka ZQuery1 untuk mengambil data.
  2. Mengatur Ukuran GridStringGrid1.ColCount diatur sesuai jumlah kolom (field) dari hasil query. StringGrid1.RowCount diatur menjadi 1 (untuk header) ditambah jumlah total record.
  3. Mengisi Header: Perulangan for digunakan untuk mengisi baris pertama (Row := 0) dengan nama-nama kolom dari database.
  4. Mengisi Data: Perulangan while not ZQuery1.Eof do mengiterasi setiap baris data di ZQuery. Di dalamnya, perulangan for mengiterasi setiap kolom untuk mengambil nilai Fields[i].AsString dan menempatkannya ke sel StringGrid yang sesuai (Cells[i, Row]).
  5. NavigasiInc(Row) menambah indeks baris StringGrid, dan ZQuery1.Next berpindah ke record selanjutnya di query.

You may also like...

Popular Posts

Leave a Reply

Your email address will not be published. Required fields are marked *