Sesuai dengan judulnya, artikel ini akan membahas cara query data dari database PostgreSQL dengan menunggunakan code program. Sebenarnya tidak hanya terbatas pada penggunaan VB.net saja, tetapi dapat digunakan pada compiler software yang lain, seperti VB 6, Delphi, C++, C# ataupun yang lain. Hanya saja tidak bisa langsung copy paste begitu saja, perlu ada penyesuaian. Karena pada contoh program yang akan aku gunakan adalah VB.net 2008, maka judulnya disesuaikan saja.
OK, langsung saja ke pokok permasalahan.
Pada artikel sebelumnya sudah dijelaskan cara mengakses database PostgreSQL dengan menggunakan VB.net 2008. Bila dicermati baik, maka dapat ditemukan sedikit keanehan pada saat melakukan query data. Berikut ini contohnya (perhatikan code yang tidak digaris tengah) :
'melakukan query table dan menampilkan ke dalam datagrid
ViewTabel("coba1", dg, "select * from " & Chr(34) & "TABLE1" & Chr(34))
Pada potongan rutin ini dapat dilihat bahwa perintah untuk melakukan query data terdapat kode "Chr(34)" yang merupakan fungsi untuk menampilkan karakter """ atau "quotation mark".
Sebelum membahas hal tersebut, ada baiknya kita lihat cara query data dengan menggunakan pgAdmin.
select * from "TABLE1"
Nah, dari perintah SQL ini coba kita masukan ke dalam VB.net. Pada VB.net, perintah dari SQL ini ditampung pada variable String dan data dari Variable String harus diawali dengan tanda " dan diakhir juga dengan tanda ". Sedangkan pada perintah SQL tersebut memerlukan tanda " saat penulisan nama TABLE1.
Lihat contoh berikut ini :
ViewTabel("coba1", dg, "select * from "TABLE1"") 'salah
Salah karena sebelum perintah select sudah diawali dengan tanda " dan kemudian berakhir ketika menemukan tanda " lagi sebelum perintah TABLE1. Padahal tanda " sangat diperlukan pada saat query data. Tetapi pada VB.net tanda tersebut dianggap sebagai akhir dari data String.
Nah, ada juga yang memiliki ide berikut ini :
ViewTabel("coba1", dg, "select * from " & "TABLE1") 'salah
Kenapa salah? padalah pada saat penulisan kode tersebut, VB.net membenarkan penulisan kode tersebut. OK, mari kita debug hasil dari query data dari peritah SQL tersebut.
Dari hasil debug, kita mendapatkan bahwa perintah query yang didapatkan adalah "select * from TABLE1", sedangkan pada perintah SQL yang seharusnya adalah "select * from "TABLE1"".
Sebagai pembuktian, ada baiknya kita coba masukan perintah SQL hasil dari debug, yaitu "select * from TABLE1".
Pada hasil ini dapat dilihat bahwa perintah tersebut adalah invalid.
Kemudian bagaimana caranya agar tanda " dapat terakomodasi oleh VB.net?
Salah satu cara yang mudah adalah dengan mengganti tanda " yang harus disertakan pada perintah SQL diganti dengan perintah Chr(34). Kenapa bisa demikian, bukankah Chr(34) juga akan menghasilkan karakter " juga?
Benar, akan tetapi VB.net tidak akan menganggap Chr(34) adalah tanda " sebelum di jalankan fungsi tersebut. Sehingga pada proses kompilasi, kompiler akan mencari tanda " sebagai tanda pembuka untuk proses awal dari data String atau akhir dari data String. Sedangkan Chr(34) dianggap sebagai rutin yang harus dikerjakan, bukan sebagai tanda ".
Berikut ini contohnya :
ViewTabel("coba1", dg, "select * from " & Chr(34) & "TABLE1" & Chr(34))
Pada proses debug, akan didapatkan data query "select * from ""TABLE1"" :
nah, jika demikian, maka query tersebut akan masuk ke dalam server PostgreSQL dan diaggap sebagai perintah yang valid.
Demikian sedikit pencerahan yang bisa aku bagikan, semoga bermanfaat.
0 comments:
Post a Comment