Implementasi Query Saldo Berjalan di VB.Net

Pada saat design time, implementasi query saldo berjalan di VB.Net memang mengalami sedikit hambatan.  Hal ini dikarenakan Table adapter Wizard yang ada di ADO.Net mengadopsi query dari SQL Server sehingga sering terjadi pesan warning ‘Unable to parse query text’.

Meski demikian, dengan sedikit teknik tertentu kita bisa mengeksekusi query “aneh” tersebut sehingga menghasilkan datatable untuk kemudian ditampilkan di DataGridView.

Dengan asumsi anda sudah menguasai pembuatan Datatable dengan Table adapter wizard, berikut adalah langkah-langkah eksekusi query tersebut di ADO.Net

Design Time

MySQL

  • Klik kanan di dataset designer anda lalu klik Add, ikuti petunjuk yang ada.
  • Pada saat mengisi parameter untuk database klik advanced seperti berikut:
  • Setting beberapa property berikut:
    1. Allow User Variables=true
    2. Allow Batch=true
    3. Use Old Syntax=true
  • Klik OK, lalu lanjutkan hingga pengisian query seperti berikut:
    Table adapter Configuration Wizard Query
  • Tekan tombol query builder lalu isikan dengan query sebagai berikut:
    
    select idtransaksi,debet,kredit,
    @saldo_awal:=@saldo_awal+debet-kredit as saldo from transaksi
    
  • Tekan tombol Execute Query lalu klik OK.
  • Jika berhasil maka akan muncul class datatable baru.  Ganti nama datatable tersebut misal transaksimysql dan juga table adapternya dengan nama transaksiTableAdapter.

FireBird

  • Isi query di SQL Builder seperti berikut:
    
    select idtransaksi,debet,kredit from transaksi
  • Akan terbentuk datatable baru dengan tiga field yaitu idtransaksi, debet, kredit.  Karena belum ada field saldo maka kita tambah secara manual dengan cara klik kanan di datatable anda lalu klik add Column
    Right Click Datatable
    Lalu setting beberapa property berikut:

    1. DataType=System.Int64
    2. Name=Saldo
    3. Source=Saldo
    4. (Optional) Caption=Saldo

RunTime

MySQL

Taruh script berikut di form anda.


Private Sub setSaldoMySQL()


        Dim scrpt As New MySql.Data.MySqlClient.MySqlScript(mysqlConn, "set @saldo=" & TextBox1.Text)
        scrpt.Execute()
        Dim slccommand As New MySql.Data.MySqlClient.MySqlCommand("select idtransaksi,debet,kredit,@saldo:=@saldo+debet-kredit as saldo from transaksi")
        slccommand.Connection = mysqlConn

        TransaksimysqlTableAdapter.Adapter.SelectCommand = slccommand
        Me.TransaksimysqlTableAdapter.ClearBeforeFill = True
        TransaksimysqlTableAdapter.Adapter.Fill(TestDataSet.transaksimysql)
        TestDataSet.TransaksiFirebird.Clear()
    End Sub

Firebird

Ketik script berikut:


Private Sub setSaldoFirebird()

        TransaksiFirebirdTableAdapter.Connection = fbConn
        Dim qry As String =
            "EXECUTE BLOCK " &
"RETURNS ( idtransaksi int,debet int,kredit int,saldo int) " &
"AS " &
"declare saldo_awal integer; " &
"declare mdebet integer; " &
"declare mkredit integer; " &
"BEGIN " &
"saldo_awal= " & TextBox1.Text & "; " &
"for select idtransaksi,debet,kredit from transaksi into :idtransaksi,:mdebet,:mkredit " &
"do  " &
"begin " &
"saldo_awal=saldo_awal+mdebet-mkredit; " &
"debet=mdebet; " &
"kredit=mkredit; " &
"saldo=saldo_awal; " &
"suspend; " &
" " &
"end " &
"END "
        Dim slc As New FirebirdSql.Data.FirebirdClient.FbCommand(qry, fbConn)
        TransaksiFirebirdTableAdapter.ClearBeforeFill = True
        TransaksiFirebirdTableAdapter.Adapter.SelectCommand = slc
        TransaksiFirebirdTableAdapter.Adapter.Fill(Me.TestDataSet.TransaksiFirebird)
        TestDataSet.transaksimysql.Clear()
    End Sub

Dan berikut hasil eksekusi script tersebut:
Query Saldo Berjalan VB.Net

Untuk lebih detailnya anda bisa download attachment dibawah.   Agar bisa dicompile ulang anda terlebih dahulu harus menginstall:

Attachments

anasmbahdien

Seorang programmer yang menguasai bahasa pemograman Delphi, VB.NET, PHP dan Android. Untuk hasil karya kunjungi mogotekno.com

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *