Bekerja dengan File DBF

File DBF memang tipe tabel jadul. Tapi jangan meremehkan file ini, di beberapa tempat pemakaian tabel dengan format DBF masih dipakai. Dengan demikian memelajari file ini sebagai bahan latihan pemrograman tetap aktual. Pembahasan yang akan saya lakukan meliputi pembuatan file DBF, pengisian dengan data, ataupun menghubungkannya dengan datasource, sehingga dapat dibuat report darinya. Segala pembahasan dalam tulisan ini memakai komponen TDBF yang dapat di download di sini atau silakan langsung menuju ke situsnya di: http://tdbf.sourceforge.net/. Dengan memakai TDBF, anda tidak perlu memakai driver apapun, semuanya dapat dikerjakan langsung dari Delphi.


A. Pembuatan File DBF 
Drag class TDBF dari tab DataAccess di form.

Pada FormCreate,ketika program berikut:

    with dbf1 do
    begin
        FilePathFull :=ExtractFilePath(Application.ExeName);
        TableLevel := 7;
        TableName := 'batch.dbf';

        with FieldDefs do
        begin
             Clear;
             Add('batch',ftString,8);
             Add('tgl',ftDate);
             Add('produk',ftString,60);
         end;
         CreateTable;
    end;

FilePathFull adalah property yang menunjukkan tempat file DBF akan diletakkan. Dalam program diatas, file dianggap di tempat file exe program ini. Cara mengetahui tempat file exe-nya adalah dengan menuliskan kode berikut:

ExtractFilePath(Application.ExeName);

TableLevel menyatakan jenis file dbf yang akan dibuat. Berikut adalah tabel selengkapnya mengenai jenis-jenis file dbf:
  1. Level 3   : dBase III+
  2. Level 4   : dBase IV
  3. Level 7   : dBase VIII
  4. Level 25 : FoxPro
FieldDefs digunakan untuk menambahkab field-field. Berikut adalah data lengkap seluruh tipe field:
  1. ftUnknown
  2. ftString
  3. ftSmallInt
  4. ftInteger
  5. ftWord
  6. ftBoolean
  7. ftFloat
  8. ftCurrency (TableLevel 25)
  9. ftBCD (TableLevel 25)
  10. ftDate
  11. ftTime
  12. ftDateTime
  13. ftBytes (TableLevel 25)
  14. ftVarBytes
  15. ftAutoInc (TableLevel 7 or 25)
  16. ftBlob
  17. ftMemo
  18. ftGraphic
  19. ftFmtMemo
  20. ftParadoxOle
  21. ftDBaseOle
  22. ftTypedBinary
  23. ftCursor
  24. ftFixedChar
  25. ftWideString
  26. ftLargeInt
  27. ftADT
  28. ftArray
  29. ftReference
  30. ftDataSet
  31. ftOraBlob
  32. ftOraClob
  33. ftVariant
  34. ftInterface
  35. ftIDispatch
  36. ftGuid
  37. ftTimeStamp
  38. ftFMTBcd

CreateTable digunakan untuk membuat tabel berdasarkan definisi yang sudah didefinisikan sebelumnya. Tanpa perintah CreateTable, maka file dbf belum terbentuk di hardisk.


B. Pengisian Data
Pengisian data dapat dilakukan dengan contoh kode berikut:

    with dbf1 do
    begin
        DisableControls;       
        Open;
        Append;
        FieldByName('BATCH').Value :=  '0001';
        FieldByName('TGL').Value := DateTimePicker1.Date;
        FieldByName('PRODUK').Value := 'Roti Tawar Isi Coklat';
        Post;
        EnableControls;
    end;

DisableControl digunakan untuk mematikan update komponen. Dengan mematikan fungsi ini, maka eksekusi menjadi lebih cepat. Property ini tidak harus diset.

Open digunakan untuk mengaktifkan tabel agar dapat menerima operasi-operasi tabel

Append digunakan untuk menyiapkan tempat bagi record baru.

FieldByName().value digunakan untuk menghubungkan field pada tabel dengan data masukan.

Post digunakan untuk memasukkan data yang diserahterimakan dengan perintah FieldByName().value ke dalam tabel

EnableControl digunakan untuk mengaktifkan komponen.

C. Menghubungkan Dengan Datasource

TDBF dapat diacu oleh TDataSource, sehingga dengan demikian, isi dari tabel TDBF dapat ditampilkan pada semua komponen yang menggunakan TDataSource. Sebagai contoh, program dibawah ini akan menggunakan TDBGrid dalam menampilkan isi tabel DBF.

letakkan TDBF, TDataSource, dan TDBGrid ke dalam form.



hubungkan TDataSource pada property DataSet dengan TDBF. Hubungkan TDBGrid ke TDataSet.


DataSource1.DataSet  := Dbf1;
DbGrid1.DataSource  := DataSource1;

Letakkan kode berikut pada formcreate, sehingga ketika form mulai tampilkan, tabel DBF langsung dipanggil.

with Dbf1 do
  begin
      FilePathFull := ExtractFilePath(Application.ExeName);
      TableName := 'batch.dbf';
      Open;
  end;

Bekerja dengan File DBF Rating: 4.5 Diposkan Oleh: Good Dreamer

6 comments:

Diberdayakan oleh Blogger.