Cara mudah konversi data ke encoding BASE64 dengan SQLAnywhere pada script PowerBuilder
Sudah menjadi kebutuhan umum BASE64 encoding string format untuk memudahkan komunikasi data antara platform yang hanya dapat menggunakan tipe data berbentuk text atau string seperti menyematkan gambar atau PDF kedalam XML dan Json yang hanya menerima data dalam bentuk string text saja, yang paling umum adalah merubah format binary misalnya image, PDF atau file binary lainnya menjadi BASE64, sehingga memungkinkan kita mengirim image atau file lainnya dalam format XML atau Json.
Sejak PowerBuilder versi 2017 R3 sudah tersedia object untuk melakukan encoding dan decoding ke base64 secara native melalui object yang bernama coderobject :
Detail mengenai apa saja fungsi nya dapat anda lihat pada link ini ya :
https://docs.appeon.com/appeon_online_help/pb2019r2beta/objects_and_controls/ch02s07.html
Lalu bagaimana implementasi nya di PowerBuilder versi sebelum itu ? Jawabannya ada pada SQLAnywhere yang mungkin tidak banyak yang mengetahui bahwa SQLAnywhere memiliki fungsi yang dapat digunakan untuk encode dan decode base64 text format. Versi terendah yang saya lihat sudah ada fungsi ini adalah versi 9, untuk versi di bawah itu saya belum menemukan dokumentasi nya.
Berikut referensi base64_decode dan base64_encode function dari SQLAnywhere
Penggunaan di Powerbuilder perlu sedikit trik, dimana kita tidak bisa semudah memanggil dengan cara embedded SQL dibawah ini :
Apakah cara ini berhasil ?
YA
lho katanya ga mudah, kalo cuma begitu kan ya gampang dong?
Memang mudah, TAPI ini hanya berhasil untuk ukuran file/blob maksimum 32KB yang merupakan keterbatasan powerbuilder dalam berkomunikasi dengan embedded SQL, jika anda mengirimkan text atau blob dengan ukuran lebih dari 32KB dengan cara tersebut, maka hanya akan menimbulkan error, kalaupun tidak ada error, maka data yang akan diterima database hanya 32KB pertama saja.
Jangan kuatir ya, cara yang lebih baik sehingga bisa mengirimkan ukuran file lebih dari 32KB bisa anda download dari link dibawah source code nya, berupa export window w_base64 yang bisa anda pelajari scriptnya, tinggal klik kanan lalu import ke library PBL yang anda inginkan. Metode nya adalah menggunakan embedded SQL Statemen UPDATEBLOB dan SELECTBLOB yang tersedia untuk dapat mengirimkan binary dengan berbagai ukuran lebih dari 32KB. Berikut potongan kode nya
Potongan script di atas menggunakan tabel dalam database SQLAnywhere yang digunakan seperti berikut :
Pada contoh disini, selain hasil encoding di tampilkan dalam multilineedit anda juga akan melihat bagaimana SQLAnywhere dengan statement UNLOAD menyimpan hasil query kedalam file, seperti contoh berikut
Contoh diatas juga menunjukkan contoh bagaimana kita melakukan pemanggilan SQLStatement yang tidak didukung dalam embedded SQL Powerbuilder dengan menggunakan statement EXECUTE IMMEDIATE.
Wah dalam satu contoh ini banyak hal yang bisa di pelajari ya, semoga bermanfaat.
Berikut tampilan window dengan contoh penggunakan konversi image menjadi base64
Jika anda ingin mencoba melakukan konversi file JPEG menjadi base64 dan ingin mengetahui apakah hasil nya dapat dikonversi kembali menjadi image, anda bisa gunakan online konverter dari link berikut ya :
https://onlinejpgtools.com/convert-base64-to-jpg
download exported source nya w_base64 disini :
https://drive.google.com/file/d/1xaJweCWJt1kgtWvFbAPYLIZHYObnWQtT/view?usp=sharing
cara import nya klik kanan pilih import ya :
original artikel nya ada di link di bawah ini ya :
0 comments on “Cara mudah konversi data ke encoding BASE64 menggunakan SQLAnywhere pada script PowerBuilder” Add yours →