Sie sind auf Seite 1von 6

InTouch, SQL untuk Single dan Multi Table

Ada dua tipe data dalam dunia database kalau dilihat dari jumlah tabel yaitu data yang diambil dari single table dan data
dari multi table. Single table biasanya hanya menyediakan informasi sederhana, untuk data yang komplek umumnya
dipecah-pecah ke dalam beberapa tabel atau lebih dikenal dengan proses normalisasi. InTouch mensupport keduanya,
tentunya ada sedikit perbedaan dalam menangani kedua tipe data tersebut.

Singel Tabel
Ambil contoh tabel dibawah :

Langkah pertama untuk ambil data dari tabel itu ya harus buat dulu BindList seperti ini :

Itulah fungsi BindList, yaitu memetakan antara variable di InTouch yang lebih dikenal sebagai Tag dengan kolom tabel di
database.
Kemudian script untuk mengambil data adalah seperti ini :

Ngak perlu pusing dengan banyaknya kode di situ, perhatikan saja pada script yang telah toekang beri tanda(box). Untuk
mengambil data dari single table cukup memakai sintak SQLSelect. Argument pertama SQLSrv\ID itu Connection ID,
kedua adalah nama tabel di database, berikutnya nama BindList, dua argument lainnya adalah Where Expression dan
Order Expression dikosongi karena data diambil semua dan ngak diurutkan.
Data-data itu akan ditampilkan ke dalam dua buah listbox yaitu ‘lbxName’ untuk menampilkan Nama device dan ‘lbxDesc’
untuk menampilkan deskripsi device. Hasil akhirnya adalah seperti ini :

Apakah hanya itu caranya ? tidak kita juga bisa memakai kombinasi ‘SQLSetStatement()’ dan ‘SQLExecute()’ seperti ini
:

Meskipun lebih komplek tapi cara ini menawarkan fleksibelitas, karena sudah tidak lagi tergantung pada nama fisik table
dan kolom di database lagi. Tabel dan kolom yang digunakan adalah tabel/kolom virtual hasil dari SQL Query.
Bingung ?? mari lihat sintak yang berbeda untuk menampilkan tabel diatas:

Hasil akhir sama, tetapi nama kolom berbeda kan? Nantinya nama kolom ini yang dipakai BindList di InTouch seperti ini:

Jika skript untuk ambil data seperti ini :

Selanjutnya untuk menangani multi teble, metode ini yang akan dipakai.

Multi Table
Terkadang untuk alasan fleksibelitas dan efisiensi tabel akhir tidak hanya dibentuk dari sebuah tabel, ia dibuat oleh
beberapa tabel. Coba perhatikan tabel log berikut :
Tabel A : Data yang dibentuk dari beberapa tabel.
Perhatikan dibagian sintak SQL-nya, dari sini diketahui bahwa tabel itu dibentuk dari empat buah tabel yaitu : Tabel
TDevice yang dipakai sebagai contoh untuk sigle table sebelumnya, tabel TType dan TEU :
dan tabel Log(data) itu sendiri :

Untuk mengambil data seperti yang ada dalam tabel A, seperti biasa buat dulu BindList seperti ini:

Dan ini untuk script InTouch-nya :

Ada sintak baru disitu yaitu SQLAppendStatement() untuk apa, untuk menambah perintah SQL terhadap perintah
sebelumnya. Lho kenapa ngak dibuat simple aja, buatkan variabel dan masukkan semua perintah ke variabel itu. Justru
itu, message variabel di InTouch kan hanya bisa menampung maksimal 131 karakter selebihnya akan diabaikan dan
sintak SQL di InTouch juga harus patuh pada aturan itu, makanya perlu dipecah-pecah pakai SQLAppendStatement()
ini.

Stored Procedure
Toekang sendiri kurang menyukai style diatas dimana semua kode di jejalkan ke dalam InTouch. Untuk perintah-perintah
SQL yang komplek, toekang lebih memilih membuat stored procedure (sp) langsung di SQL seperti ini :
dengan ‘spGetData’ sebagai nama Stored Procedure-nya, nantinya di InTouch tinggal di eksekusi aja Stored Procedure
ini dengan perintah ‘EXEC spGetData’ :

Simpel kan ? Di samping itu manfaat lain jika dibuatkan di sp ini kita dapat langsung tau hasil dari sintak-sintak SQL yang
kita buat, mudah memaintenannya, lebih cepat karena langsung di proses di server. Btw ..terserah anda, nyaman pake
yang mana.

Sekedar Tip !
Selalu pantau Wonderware Logger ! Seringkali kita sibuk mencari dimana letak kesalahan kode kita tanpa menengok ke
fasilitas standard yang telah diberikan oleh Wonderware ini, padahal disitu sering masalah kita telah dijelaskan dengan
detil.

Das könnte Ihnen auch gefallen