[TEKNOLOGI] Error Data Provider or Other Service Returned an E_FAIL di Visual Basic 6


ilustrasi program error
Gambar ilustrasi kode error (Magnific.com/macrovector)

Siapa, nih yang masih setia pakai Visual Basic? Jadi, aku kali ini mau share soal trouble yang aku temuin di program yang aku buat.

Awalnya, sih programnya fine-fine aja. Tapi gak tahu kenapa, tiba-tiba aja muncul error gitu. Error apa, sih?


Error VB : Data provider or other service returned an E_FAIL status
Gambar screenshot error di Visual Basic 6


Tulisannya, sih "Data provider or other service returned an E_FAIL status". Tapi aku yakin banget gak ngerubah kode apapun sebelumnya. Kayak... tiba-tiba banget itu error muncul entah dari mana.

Terus gimana, dong? Nah, kalau kamu juga lagi nemuin error yang sama, tenang aja! Karena aku udah nemu solusinya, kali ini aku bakalan bahas solusi ini di sini. Siapa tahu aja ini works di kalian juga.

Alasan error data provider or other service returned an E_FAIL status


ilustrasi wanita stres saat melihat laptop
Gambar ilustrasi stres saat melihat laptop (Pexels.com/Anna Shvets)

Awalnya, sih aku coba cek dulu data apa ada yang salah di kodeku. Caranya tentu aja dengan menelusuri setiap kode bug tadi dengan menandai sebelah kiri layar sampe muncul tanda bulatan merah di tempat yang aku curigai, terus aku tekan F5 berulang kali sampai error-nya muncul. Btw ini namanya breakpoint, ya!

Tapi ternyata dia muncul cuman di satu form doang. Dan error-nya emang pas load gitu. Makanya aku langsung putar otak: kalo error saat load, bukannya ada masalah sama data di database?

Kenapa gitu? Karena, kan saat form itu load dia bakalan munculin data dari database dulu. Makanya aku curiga. Tapi, ya... aku ngerasa kalau harus cek data di database satu-satu bakalan butuh waktu lama juga. Apalagi kadang kalau pas error gini otak tiba-tiba gak ngeh walaupun alasan error-nya udah muncul di depan mata.

Terus gimana, dong? Tentu saja aku coba googling. Aku masukin aja tulisan error tadi di google, abis itu aku cek, deh solusi dari blog-blog orang lain.

Apakah ketemu biang keroknya? Tentu, dong! Sesuai prediksiku sebelumnya, kaitannya ada di database. Kalau menurut hasil googling, sih katanya di database kita ada field yang formatnya date/datetime, tapi datanya malah kosong atau "0000-00-00" gitu.

Karena gak mungkin ada tanggal 0, bulan 0 dan tahun 0, makanya akhirnya muncullah error itu. Kok bisa, sih? Bukannya sebelumnya katanya gak ada yang dirubah?

Makanya aku coba aja cek di database khusus untuk tabel yang emang nyambung ke form yang bermasalah. Ternyata bener ada data yang isinya kosong. Aku juga, gak tahu, sih kenapa tiba-tiba ada data kosong kayak gitu saat aku yakin aku gak ada ngedit kode di program.

But life must go on, kan? Daripada aku neliti alasannya, aku mencoba untuk ngebenerin data yang sudah ada dulu biar setidaknya pas form load gak muncul error, terus baru, deh aku coba tambah atau edit data dari program buat ngecek apa iya ada kode yang salah.

Terus gimana caranya benerin data di database yang terlanjur salah tadi? Kalau cara simple-nya, sih tinggak rubah aja formatnya jadi string/char.

Tapi kalau gitu, datanya emang bisa tampil. Masalahnya adalah dataku yang isinya "0000-00-00" itu gak semua. Jadi takut aja kalo aku rubah formatnya jadi string/char malah mempengaruhi dataku yang benar.

Apalagi, dataku ini gak cuma puluhan doang, tapi ada ribuan! Ini pun bukan program untuk latihan doang, tapi emang program perusahaan. Kalau sampai salah langkah, bisa gila hamba. 🤣

Terus gimana, dong solusinya! Tenang! Aku bakalan bahas di bawah! Jadi jangan keburu stres dulu, ya!


Solusi Error Data provider or other service returned an E_FAIL status

ilustrasi pria yang sedang berpikir di depan laptop
Gambar ilustrasi pria yang sedang berpikir di depan laptop (Magnific.com/magnific)

Terus apa, dong solusi biar error-nya hilang tapi juga gak harus ngerubah tabel? Kalau dari yang aku cek di google, sih kita perlu utak-atik di database-nya. 

  • Kamu bisa masuk control panel, administrative too ls, data sources ( odbc ). Setelah itu pilih nama source odbc yang programnya bermasalah. 

Tampilan konfigurasi MySQL Connector / ODBC

  • Pilih details sampai muncul tampilan kayak di bawah.

Tampilan tombol detail di Konfigurasi ODBC

  • Setelah itu masuk tab cursors/results, di bagian paling bawah bakalan ada tulisan return SQL_NULL_DATA for zero date. Centang itu terus klik OK. 
  • Abis itu baru jalankan program lagi, dan voilaaaa..... Program bisa langsung digunakan tanpa error dan tanpa harus utak-atik database.

Cara menelusuri error di Visual Basic 6


ilustrasi programmer wanita
Gambar ilustrasi programmer wanita (Magnific.com/magnific)

Kalau ada dari kamu yang merasa solusi di atas gak works out, coba pastikan dulu apa letak error-nya emang sama/enggak. Caranya? Kamu bisa pakai beberapa cara yang pernah aku lakuin di bawah ini:

  • Cek database

Cek apakah kamu bisa akses database kalian. Kamu bisa coba pakai cara yang biasa kamu lakuin atau bisa juga via browser (phpmyadmin). Kalau gak ada masalah pas akses database, bahkan semua tabel dan datamu juga bisa diakses, berarti kamu bisa lanjut ke next step. Tapi kalau emang ada masalah pas akses datamu di database, bisa jadi ada malware atau virus di komputer server-mu.

Terus apa, dong solusinya? Repair database aja! Tapi pastikan kamu emang punya back up-nya, ya! Ini harus wajib kudu dilakukan tiap hari. Karena kalau kamu kerja di bagian IT, back up database bisa jadi penyelamat kariermu di masa depan, terutama pas ngalamin error atau serangan virus.

Makanya, jangan malas untuk rutin back up database. Lagipula kamu bisa back up otomatis, kok sebenarnya! Nanti aku bahas di next post, ya gimana caranya.

Btw, jangan lupa cek juga tabel yang terhubung sama programmu. Cek aja apa ada data yang isinya kosong, null, atau "000-00-00" kayak tadi. Kalau emang ada data kayak gini, harusnya cara sebelumnya, sih bakalan berhasil.

Tapi kalau gak berhasil, coba cek ada berapa datamu yang emang isinya kayak gitu. Kalau cuman dikit, kamu coba ganti aja datanya biar gak null, kosong, atau "000-00-00".

  • Cek kode di program Visual Basic

Kalau kamu ngalamin hal yang sama persis kayak yang aku alami, kecil kemungkinan ada error pada program VB-mu. Soalnya di kasusku, error-nya muncul bahkan pas aku gak ngerubah kode/update program. Kalaupun ada yang berubah, ya cuman data di database aja alias dari proses tambah dan edit data. 

Tapi kalau programmu emang sempat di-update atau kamu punya rekan programmer lain yang bisa utak-atik programmu, ya pastikan untuk mengecek kode yang baru di-update tadi. Kamu bisa cek apa gak ada typo pas nulis kode, atau mungkin gak sengaka ada tanda baca yang udah diketik.

Apa harus cek satu-satu? Enggak, dong! Pake metode debugging aja! Buat yang gak tahu, metode ini dipakai untuk mempermudah user mencari tahu lokasi kode yang error. Caranya? Kamu bisa pake dua cara di bawah:

    • Buat message box untuk menampilkan value yang kamu curigai bermasalah di message box

Nah, kalau error-nya berkaitan sama value, biasanya aku pakai metode debugging yang ini. Caranya dengan tambahin message box di kode yang kamu curigai.

Ini bisa dipakai kalau emang kamu yakin datanya udah diisi, tapi pas disimpan malah datanya null, kosong, atau jadi "0000-00-00". Jadi kamu masukin aja isi text/datapicker/input lain ke message box.

Kalau datanya udah sesuai, berarti error-nya bukan di situ. Artinya kamu bisa terusin pake message box di tempat lain buat ngecek di mana lokasi pasti error-nya.

Kalau akhirnya ketemu di mana errornya, baru deh kamu perbaiki kodenya. Kadang baru ketauan di sini. Mungkin aja kamu salah masukin input-nya. Harusnya field A input-nya dari textbox, tapi kamu masukinnya malah dari dtpicker. Jadi pastikan ini sesuai dulu, ya!

Btw, kalau kamu udah selesai benerin kodenya, jangan lupa hapus message box tadi. Biar user-mu gak kaget tiba-tiba pas mau buka form malah muncul banyak message box. 🤭

    • Lakukan Breakpoints

Cara ini udah aku sebutin di awal tadi. Kalau kamu ngerasa error-nya bukan dari value atau malas kalau harus pakai message box, kamu bisa pakai ini ajam. 

Caranya dengan menekan sisi sebelah kiri kode yang mau dicek. Kamu bisa lihat bulatan merah di gambar, itulah yang disebut breakpoints. Pas pakai breakpoints, programnya bakalan jalan terus sampai proses  di kode yang kamu tandai tadi muncul. Kalau muncul error sebelum breakpoints-mu, maka error ada di kode yang diproses sebelum breakpoints.

Tapi kalau gak ada error padahal breakpoints udah dijalankan, coba tekan F8 sampai muncul error ataupun sampai proses selesai. Ini bisa bikin programmu menjalankan kode per baris setelahnya dan bikin kamu tahu dimana letak error pada kodemu.

Breakpoints pada Visual Basic 6
Gambar screenshot breakpoints dari Visual Basic 6


Nah, sekarang harusnya udah ketahuan, kan di mana letak error-nya tadi? Semoga aja solusi yang aku kasih ini works di error-mu juga, ya!

Tapi kalau ternyata masih gak berhasil benerin error-nya atau kamu punya cara lain yang lebih oke, jangan ragu buat tulis di kolom komentar. Siapa tahu aja kita bisa saling sharing ilmu baru.

See you in my next post!
 

6 Komentar

Silahkan kasih komentar kalian disini

  1. @homsatun home: udah diikutin sesuai langkah-langkahnya? biasanya programnya harus ditutup dulu terus dibuka lagi. dan pastikan itu odbcnya emang odbc dari program. kalo emang ada beberapa odbc, ya lakuin langkah itu ke semua odbc yang tersambung sama program.

    BalasHapus
  2. ini pake mysql connector yg ke berapa 5.3 ?

    BalasHapus
  3. Iya. Seharusnya sih sama aja ya mau pake mysql connector odbc versi berapa aja.

    BalasHapus
  4. Terima kasih. Ternyata setiap field yang bernilai indefinite juga akan mengeluarkan error seperti ini.

    BalasHapus
Lebih baru Lebih lama