Skip to content

pascal-id/database-with-fastplaz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Database dengan FastPlaz

Aplikasi ini menunjukkan contoh akses ke database dengan menggunakan FastPlaz, salah satu Web Framework untuk bahasa Pascal.

Menggunakan 3 metode, yaitu dengan

  • Direct Query,
  • ORM Model,
  • API

Aplikasi ini dibuat dengan sederhana untuk percontohan, tanpa menggunakan autentikasi/verifikasi.

Sumber database menggunakan Project Inventory dari om Nur Hidayat.

Metode Akses

Direct Query

Screenshot

Cara ini sepertinya cara yang sudah paling umum digunakan oleh para developer, dengan menggunakan query langsung untuk mengakses database.

Contoh kode sumbernya sebagai berikut:

    // Direct Query ke table warehouses
    warehouses.SQL.Text := 'SELECT w.id, w.code, w.name, l.code, l.name country '
      + ' FROM warehouses w'
      + ' LEFT JOIN locations l ON location_id=l.id';
    if not warehouses.Open() then
    begin
      //
    end;

ORM Model

Screenshot

Ini merupakan contoh cara akses database menggunakan cara ORM (Object Relation Mapping). Langkah-langkahnya akan semakin lebih mudah karena hanya perlu mendefinisikan field apa yang akan ditampilkan serta tabel relasinya. Hasilnya akan sama dengan cara direct access di atas, namun lebih simple cara penulisan kodenya.

Contoh kode sumbernya sebagai berikut:

    warehouses.AddJoin('locations', 'id', 'warehouses.location_id', ['code','name country']);
    if not warehouses.Find(whereAsArray) then
    begin
      //
    end;

API

Screenshot

Berikut ini merupakan contoh cara akses database menggunakan cara pemanggilan API. Cara menampilkannya dibantu dengan sedikit pemrograman Javascript, kali ini memanfaatkan pustaka jQuery.

Terlebih dahulu mesti dipersiapkan project API-nya, isinya mirip dengan contoh akses database menggunakan ORM Model, hanya saja output dibuat dalam format json, yang isinya kurang lebih seperti berikut:

{
  "code": 0,
  "request": {
    "query": "raw"
  },
  "response": {
    "count": 3,
    "data": [
      {
        "id": 1,
        "code": "IDW01",
        "name": "Raw Material ID",
        "location_id": 1,
        "country_code": "ID",
        "country": "Indonesia"
      },
      {
        "id": 3,
        "code": "MYW01",
        "name": "Raw Material MY",
        "location_id": 2,
        "country_code": "MY",
        "country": "Malaysia"
      },
      {
        "id": 5,
        "code": "SAW01",
        "name": "Raw Material SA",
        "location_id": 3,
        "country_code": "SA",
        "country": "Saudi Arabia"
      }
    ]
  }
}

Kode sumber pascal-nya akan seperti berikut:

  json['code'] := 404;
  json['request/query'] := keyword;
  warehouses.AddJoin('locations', 'id', 'warehouses.location_id', ['code country_code','name country']);
  if warehouses.Find(whereAsArray) then
  begin
    json['code'] := 0;
    json['response/count'] := warehouses.RecordCount;
    json.ValueArray['response/data'] := warehouses.AsJsonArray(False);
  end;
  Response.Content := json.AsJSON;