Kamis, 03 Januari 2019

Tutorial Gambas ~ Cara Mendapatkan Nilai OUT Procedure Database MySQL


Pada penggunaan procedure database MySQL, kita mengenal 3 macam deklarasi untuk memberikan peran suatu variable, apakah sebagai data masukan (input) yang ditandai dengan IN, ataukah sebagai data keluaran (hasil) yang ditandai dengan OUT, atau sebagai keduanya INOUT.

Nah, pada artikel kali ini membahas cara mengambil nilai keluaran/hasil (@) yang ditandai dengan OUT pada deklarasi variabel suatu procedure.

Misal mempunyai procedure yang mempunyai struktur sebagai berikut:

DELIMITER $

CREATE PROCEDURE Tes(OUT nilai CHAR(2))
BEGIN

   SET nilai = “Ok”

END$

DELIMITER ;

Jika kita memanggil nilai pada procedure menggunakan Terminal/CMD (Shell Mode):

MariaDB [NamaTabel]> CALL Tes(@ambilnilai);
MariaDB [NamaTabel]> SELECT @ambilnilai hasil;
+-----------+
| hasil     |
+-----------+
| Ok        |
+-----------+
Nb: “@ambilnilai hasil” sama dengan “@ambilnilai As hasil”

Jika menggunakan pemrogaman gambas:

Telah dibuatkan Modul khusus untuk koneksi databases yang diberi nama “Dataku”. Sedangkan dalam Modul Dataku dibuatkan fungsi koneksi database MySQL yang bernama “Hubungkan”:

' Gambas module file
Public KoneksiDatabase As New Connection
Public Function Hubungkan() As Boolean
  With KoneksiDatabase
    .Close()
    .Type = "mysql"
    .Host = "localhost"
    .Login = "root"
    .Password = "123456"
    .name = "tesfunction"
    .Open()
  End With
    Return True
  Catch
  Message.Warning("Ada masalah, tidak dapat terhubung ke server sql", "OK")
  Return False

End

Karena hanya sekedar contoh dan saya tidak mau ribet, saya kasih contoh pembuatan Aplikasi dengan mode Console (bukan FormGUI). Kita buatkan Modul Main untuk eksekusinya dengan nama Aplikasiku, yang di dalamnya terdiri dari perintah-perintah berikut:

‘ Gambas module file
Public Sub Form_Open()

  Dataku.Hubungkan

End

Public Sub Main()

  Dim hsl As Result
  hsl = Dataku.KoneksiDatabase.Exec("CALL Tes(@ambilnilai)").Connection.Exec("SELECT @ambilnilai hasil")
  Print hsl!hasil

End

Result: Ok

Penggunaan procedure diatas adalah contoh sederhana sebagai dasar penggunaan yang lebih kompleks lagi.

Semoga dapat difahami dan bermanfaat.
Terima kritik dan saran.
Kurang lebihnya, mohon dimaafkan.