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 :
TZConnection: Untuk koneksi ke database.TZQuery: DinamaiZQuery1(atau sesuaikan namanya).TStringGrid: DinamaiStringGrid1(atau sesuaikan namanya).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 :
- Koneksi dan Query: Kode memastikan koneksi database aktif, mengatur perintah SQL, dan membuka
ZQuery1untuk mengambil data. - Mengatur Ukuran Grid:
StringGrid1.ColCountdiatur sesuai jumlah kolom (field) dari hasil query.StringGrid1.RowCountdiatur menjadi 1 (untuk header) ditambah jumlah total record. - Mengisi Header: Perulangan
fordigunakan untuk mengisi baris pertama (Row := 0) dengan nama-nama kolom dari database. - Mengisi Data: Perulangan
while not ZQuery1.Eof domengiterasi setiap baris data diZQuery. Di dalamnya, perulanganformengiterasi setiap kolom untuk mengambil nilaiFields[i].AsStringdan menempatkannya ke selStringGridyang sesuai (Cells[i, Row]). - Navigasi:
Inc(Row)menambah indeks barisStringGrid, danZQuery1.Nextberpindah ke record selanjutnya di query.
