Home > Firebird > Membuat store procedure, trigger dan view di Firebird

Membuat store procedure, trigger dan view di Firebird

March 15, 2010

Menyambung artikel sebelumnya kali ini kita akan membuat store procedure, trigger dan view di Firebird dengan bantuan tool IBExpert.

Secara ringkas definisi store procedure, trigger dan view sebagai berikut :
1. Store procedure = Sekumpulan perintah yang mempunyai nama dan disimpan sebagai objek dari database yang nantinya bisa kita panggil dari aplikasi

2. Trigger = Store procedure khusus yang otomatis aktif/dijalankan pada saat event-event tertentu ketika sebuah aksi (INSERT, UPDATE, DELETE) menimpa sebuah tabel.
Contoh event yang ada di Firebird :

  • Before Insert
  • After Insert
  • Before Update
  • After Update
  • Before Delete
  • After Delete

3. View = Pernyataan DML (khusus SELECT) yang mempunyai nama dan disimpan juga sebagai objek dari database. View juga bisa dipanggil dari aplikasi.

Untuk mempermudah memahami pembuatan store procedure, trigger dan view kita akan menyelesaikan kasus-kasus berikut:

  • Menambahkan data supplier (store prosedure)
  • Mendapatkan jumlah stok berdasarkan kode barang (store prosedure yang dijadikan sebagai fungsi)
  • Mengurangi jumlah stok pada saat proses penjualan (trigger)
  • Menampilkan informasi pembelian (view)

Oke kita langsung saja aktifkan database DB PS SWALAYAN WS, jika Anda lupa bagaimana mengaktifkannya Anda bisa main-main kesini.

1. Membuat store prosedur
Klik kanan node Procedures kemudian pilih menu New Procedure …

Setelah itu akan tampil editor NEW PROCEDURE

2. Membuat store prosedur yang dijadikan sebagai fungsi
Langkah-langkah sama seperti membuat store procedure biasa hanya saja selain membuat variabel di tab Input Parameters kita juga WAJIB membuat variabel untuk menampung nilai kembalian (return value) di tab Output Parameters.

3. Membuat trigger
Klik kanan node Triggers kemudian pilih menu New Trigger …

Setelah itu akan tampil editor NEW TRIGGER

4. Membuat view
Klik kanan node Views kemudian pilih menu New View …

Setelah itu akan tampil editor NEW VIEW

Sampai disini kita sudah berhasil membuat store procedure, trigger dan view. Gimana ? simple bukan🙂

Referensi :

dan sample database bisa didownload disini.

Artikel berikutnya insya Allah kita akan mencoba membahas penggunaan/pemanggilan store procedure dan view yang ada di artikel ini dari aplikasi.

Selamat mencoba🙂

  1. June 14, 2011 at 3:29 pm

    tks infonya, mau tanya kalo mau export data gmbar melalui sintact sql bagaimana mas ?

    tks
    aries

    • June 14, 2011 at 4:05 pm

      Maksudnya gimana ya om, yg jelas enggak bisa klo langsung dari sintak sqlnya

  2. October 12, 2011 at 6:38 am

    Mas, mau nanya kalau buat execute block gimana yah?
    kok kalau langsung mengikuti yg ada di website firebird ga bs yah?

    execute block (smallest int = ?, largest int = ?)
    returns (number int, square bigint, cube bigint, fourth bigint)
    as
    begin
    number = smallest;
    while (number <= largest) do
    begin
    square = number * number;
    cube = number * square;
    fourth = number * cube;
    suspend;
    number = number + 1;
    end

    errornya:
    unexpected end of command -line 5, column 10

    padahal sepertinya ga ada salahnya.
    kalau pake "set term" hasilnya juga sama.
    pas "?" diisi nilai juga tidak bisa.

    Terima kasih,
    Nia

    • October 12, 2011 at 9:23 am

      Ada sedikit revisi kode dibagian deklarasi parameter :

      execute block (smallest int = :smallest, largest int = :largest)
      returns (number int, square bigint, cube bigint, fourth bigint)
      as
      begin
        number = smallest;
        while (number <= largest) do
        begin
          square = number * number;
          cube   = number * square;
          fourth = number * cube;
          suspend;
          number = number + 1;
        end
      end
      
      • October 12, 2011 at 9:47 am

        Hehehehehehe….
        Makasih ya mas, uda bisa nihh!

        Saya langsung cobain di fast report, tapi kalau dicoba di flame robin msh ada alert “Token unknown – line1, column 31 : ”

        Terima kasih😀

        • October 13, 2011 at 5:35 am

          Oke, fast report berarti pake delphi ya ?

          • October 27, 2011 at 9:18 am

            Iyah, saya pakai delphi.

  3. bramantyo
    April 15, 2012 at 2:04 am

    Mantabs bro, nambah ilmu lagi, semoga bisa implementasi View & Trigger di SQLite

    • April 15, 2012 at 6:10 am

      Oke om

  4. NananG
    July 18, 2012 at 2:26 pm

    Master, kalu nampilin Procedure di fastreport.net gimana ya?

    • July 21, 2012 at 1:52 pm

      Maksudnya g mana om ?

  5. arulamd
    July 31, 2012 at 11:10 am

    bos ane mau tanya, didalam query di firebird untuk fungsi nullif set 0 jika kolom kosong ,itu bagaimana yah di firebird, saya sudah coba seperti ini nullif(awal.debit,0) + nullif(awal2.debit,0) as awal_debit, query tersebut tidak mau menjumlah kan, sedangkan nilai kolom yg null tidak di set 0.terima kasih.

    • August 4, 2012 at 9:46 am

      Klo sy biasanya pake fungsi COALESCE om :

      COALESCE(awal.debit, awal.debit, 0)
      • August 27, 2013 at 8:14 pm

        Tanya Om, Bagaiman cara memunculkan warning mesage di firebird namun warning message tersebut bisa di escape/abaikan dan transaksi/excute bisa dilanjutkan.
        Saya sudah menggunakan fungsi EXCPTION tapi benar2 memblokir execute transaksi

        • August 28, 2013 at 9:39 am

          Sy belum pernah mencoba Exception di FB, coba kesini dulu om.

  6. Choirul Akmal
    August 29, 2013 at 9:50 am

    oke Saya kunjungi dulu om😉

  7. Choirul Akmal
    August 29, 2013 at 9:56 am

    hmm.. belum menjawab link nya, kalau om admin sendiri biasanya pakai fungsi apa untuk memunculkan popup message di FB.

  8. james tri
    February 6, 2014 at 6:15 pm

    Mas, mau tanya donk
    bagaimana caranya untuk menampilkan semua user yang ada pada firebird kedalam Vb.net

    terimah kasih

    • March 4, 2014 at 2:21 pm

      Untuk menampilkan user di FB om bisa langsung mengeksekusi perintah sql ini :

      SELECT DISTINCT RDB$USER FROM RDB$USER_PRIVILEGES
      
  1. No trackbacks yet.
Comments are closed.
%d bloggers like this: