Home > SQLite, Visual Basic > Mengakses database SQLite menggunakan library dhSQLite

Mengakses database SQLite menggunakan library dhSQLite

July 5, 2010

Ada yang kurang di artikel sebelumnya, yaitu saya belum membahas bagaimana mengakses database SQLite dalam pembuatan aplikasi database.

Secara umum aksi yang sering dilakukan dalam pembuatan aplikasi database hanya seputar pernyataan DML (Insert, Update, Delete dan Select), jadi untuk menyederhanakan pembahasan saya pun membatasi artikel kali ini hanya seputar permasalahan tersebut.

Sebenarnya cukup dengan library ADO pun kita sudah bisa mengakses database SQLite, tetapi pada artikel kali ini saya menggunakan library dhSQLite.

Untuk mengakses database SQLite menggunakan dhSQLite kita cukup menggunakan 3 kelas yaitu :

  1. cConnection, sesuai namanya kelas ini digunakan untuk membuat koneksi ke database
  2. cRecordset, digunakan untuk menampung pernyataan select
  3. cCommand, digunakan untuk mengeksekusi pernyataan insert, update dan delete

sedangkan untuk sample database bisa langsung Anda download disini.

1. Membuat koneksi

Tambahkan sebuah modul, kemudian ketik kode berikut :

Public Function openDb() As Boolean
    On Error GoTo errHandle

    Set conn = New cConnection
    conn.openDb "C:\dbpos\dbpos.db3"
    openDb = True

    Exit Function
errHandle:
    openDb = False
End Function

dengan asumsi database dbpos.db3 sudah ada di folder C:\dbpos.

Untuk mencoba fungsi openDb diatas, kita akan memanfaat prosedur Main berikut :

Public Sub Main()
    Dim ret As Boolean

    ret = openDb
    If ret Then
        'TODO : tampilkan form utama
    Else
        MsgBox "Koneksi gagal", vbExclamation, "Peringatan"
    End If
End Sub

Tentunya agar prosedur Main tersebut bisa dijalankan, kita harus merubah Startup Object menjadi Sub Main.

2. Menambahkan data

Menambahkan data menggunakan objek cCommand sangat mudah sekali, lihat kode berikut :

Private Sub cmdSimpan_Click()
    Dim cmd As cCommand

    strSql = "INSERT INTO barang (kode_barang, nama_barang, stok, harga_beli, harga_jual) VALUES (?, ?, ?, ?, ?)"
    Set cmd = conn.CreateCommand(strSql)
    With cmd
        .SetText 1, txtKodeBarang.Text
        .SetText 2, txtNamaBarang.Text
        .SetDouble 3, Val(txtStok.Text)
        .SetDouble 4, Val(txtHargaBeli.Text)
        .SetDouble 5, Val(txtHargaJual.Text)
        .Execute
    End With
    Set cmd = Nothing
End Sub

Mirip sekali bukan menambahkan data menggunakan interface PreparedStatement di java😀

Angka 1,2 .. 5 merupakan urutkan field pada pernyataan dml, sedangkan method yang dipanggil setelah berhasil menciptakan objek cCommand sesuai dengan tipe data field.

Contoh kode barang bertipe varchar, maka method yang dipanggil adalah SetText, sedangkan stok, harga beli dan harga jual bertipe numeric makanya method SetDouble yang dipanggil dan jika bertipe integer tinggal panggil aja method SetInt32 dan begitu seterusnya.

Oke kita lihat lagi pada pernyataan berikutnya.

3. Mengedit data

Private Sub cmdEdit_Click()
    Dim cmd As cCommand

    strSql = "UPDATE barang SET nama_barang = ?, stok = ?, harga_beli = ?, harga_jual = ? " & _
             "WHERE kode_barang = ?"
    Set cmd = conn.CreateCommand(strSql)
    With cmd
        .SetText 1, txtNamaBarang.Text
        .SetDouble 2, Val(txtStok.Text)
        .SetDouble 3, Val(txtHargaBeli.Text)
        .SetDouble 4, Val(txtHargaJual.Text)
        .SetText 5, txtKodeBarang.Text
        .Execute
    End With
    Set cmd = Nothing
End Sub

4. Menghapus data

Private Sub cmdHapus_Click()
    Dim cmd As cCommand

    strSql = "DELETE FROM barang WHERE kode_barang = ?"
    Set cmd = conn.CreateCommand(strSql)
    With cmd
        .SetText 1, txtKodeBarang.Text
        .Execute
    End With
    Set cmd = Nothing
End Sub

5. Menampilkan data

Untuk menampilkan data kita menggunakan pernyataan SELECT, dan ingat pernyataan SELECT mengembalikan data dalam bentuk recordset, sehingga kita harus membuat objek dengan tipe cRecordset.

Private Sub cmdTampilkan_Click()
    Dim rs  As cRecordset

    strSql = "SELECT kode_barang, nama_barang, stok, harga_beli, harga_jual " & _
             "FROM barang " & _
             "ORDER BY nama_barang"
    Set rs = conn.OpenRecordset(strSql, True)
    If Not rs.EOF Then
        Do While Not rs.EOF
            Debug.Print rs("kode_barang").Value & ", " & rs("nama_barang").Value
            rs.MoveNext
        Loop
    End If
End Sub

6. Insert, Update dan Delete dalam jumlah banyak

Hati-hati jangan langsung mengunakan kode seperti berikut :

Private Sub cmdTest1_Click()
    Dim cmd As cCommand
    Dim i   As Integer

    strSql = "INSERT INTO tabel_test (no_urut) VALUES (?)"

    Set cmd = conn.CreateCommand(strSql)
    For i = 1 To 1000
        cmd.SetInt32 1, i
        cmd.Execute
    Next i
    Set cmd = Nothing
End Sub

hasil uji coba di laptop saya membutuhkan waktu sekitar 1 menitan, tetapi bandingkan jika menggunakan transaction

Private Sub cmdTest2_Click()
    Dim cmd As cCommand
    Dim i   As Integer

    strSql = "INSERT INTO tabel_test (no_urut) VALUES (?)"

    Set cmd = conn.CreateCommand(strSql)
    conn.BeginTrans
    For i = 1 To 1000
        cmd.SetInt32 1, i
        cmd.Execute

        If i Mod 200 = 0 Then
            conn.CommitTrans
            DoEvents

            conn.BeginTrans
        End If
    Next i
    conn.CommitTrans
    Set cmd = Nothing
End Sub

hanya membutuhkan waktu 1 detik, wowww lumayan bedakan.

Oke terakhir untuk mencoba semua kode diatas, library dhSQLite harus sudah direferensikan di project kita.

Selamat mencoba🙂

  1. August 25, 2010 at 5:03 am

    hmm…gmna mnambhkan data edit hpus dll….startupobject kan submain…. form na????

  2. August 25, 2010 at 5:34 am

    Wah si om bercanda kali, masa’ udah bisa buat antivirus tpi belum bisa buat program tambah dan edit ? nentuin startup object dan prosedur Sub Main

  3. August 25, 2010 at 6:16 am

    wah udah kunjungan ya…..🙂 itu aplikasi lama yang di buka kembali….. taon 2006 dah pensiun dari VB…. skrang bljar lg dr awal…🙂

    • August 26, 2010 at 2:01 pm

      Oke om yg semangat ya😀, kan buku vb dasar banyak😆

  4. August 27, 2010 at 1:20 am

    🙂😀

  5. October 3, 2010 at 1:56 am

    sudah dicoba, tapi gagal terus, knp ya?

    pesan error nya :

    Run-time error ’91’:

    Object variable or With block variable not set

    • October 4, 2010 at 1:14 am

      Coba tambahkan deklarasi berikut :

      Public conn As cConnection
      

      diatas fungsi openDb

  6. October 8, 2010 at 2:28 am

    hi admin, ada solusi utk pembuatan report vb yg menggunakan sqlite???

    saya mencoba gagal terus… >_<"

    mohon dibuat tutorialnya:mrgreen:

    • October 8, 2010 at 4:24 am

      Pertanyaan terlalu global om, gagal apanya? emg apa aja yg udah dicoba. trus reportnya mau ditampilkan kemana?

  7. maman
    October 16, 2010 at 4:28 am

    sebelumnya Terima kasih atas sharing ilmunya

    Apa ada bedanya om, perintah insert,update,delete yg langsung di eksekusi dari variabel koneksinya?
    contoh:

    conn.Execute “insert into tabel_test values(‘a’,’b’,’c’);”

    mengenai performance perintah seperti ini apa berpengaruh dibandingkan perintah seperti contoh sebelumnya (PrepareStatement) ???

  8. October 18, 2010 at 1:40 am

    Klo PrepareStatement ini kan salah satu interface yg ada di java jadi enggak bisa dibandingkan.

    Tp klo mengacu artikel ditas (VB+dhSQLite+SQLite) kedua perintah berikut akan memberikan perbedaan yg signifikan.

    Private Sub cmdTest2_Click()
        Dim cmd As cCommand
        Dim i   As Integer
    
        strSql = "INSERT INTO tabel_test (no_urut) VALUES (?)"
    
        Set cmd = conn.CreateCommand(strSql)
        conn.BeginTrans
        For i = 1 To 1000
            cmd.SetInt32 1, i
            cmd.Execute
    
            If i Mod 200 = 0 Then
                conn.CommitTrans
                DoEvents
    
                conn.BeginTrans
            End If
        Next i
        conn.CommitTrans
        Set cmd = Nothing
    End Sub
    

    prosesnya akan lebih lambat jika menggunakan kode berikut :

    Private Sub cmdTest2_Click()
        Dim i   As Integer
        
        For i = 1 To 1000
            strsql = "INSERT INTO tabel_test (no_urut) VALUES (" & i & ")"
            conn.execute strsql
        Next i
    End Sub
    

    Kode pertama mirip dengan implementasi dari interface PrepareStatement di java.

  9. maman
    October 18, 2010 at 10:47 pm

    Ooo gitu ya..
    btw thank’s buat pencerahannya.

    • October 19, 2010 at 6:56 am

      Oke sama2x

  10. November 15, 2010 at 5:17 am

    Assalamu Alaikum Wr. Wb.,
    Kalo ingin Buat laporan dgn Active Report Caranya bagaimana yah?
    Mohon bantuannya

    • November 15, 2010 at 5:32 am

      Waalaikumussalam Warahmatullahi Wabarakatuh

      Wedewww terlalu panjang om klo di bahas disini, mungkin insya Allah sy buatkan artikel berseri aja tentang masalah ini.

  11. November 15, 2010 at 6:01 am

    Syukron atas balasan comment nya
    Saya tunggu artikelnya, Jangan di Panggil Om akhi

    • November 16, 2010 at 7:08 am

      Af1 akhi😀
      Ditunggu aja ya, insya Allah🙂

  12. Ddy
    December 14, 2010 at 9:40 am

    SQLite juga bisa dipassword sehingga tidak bisa dibuka oleh orang lain karena filenya akan di-encrypt. SQLChiper adalah pengembangan dari SQLite, please check di http://sqlcipher.sf.net

    • December 15, 2010 at 1:55 am

      Oke om tq infonya, tapi untuk dapat dllnya harus donasi dulu ya?

    • Febriano Bramantyo
      October 1, 2012 at 1:27 am

      Ddy :
      SQLite juga bisa dipassword sehingga tidak bisa dibuka oleh orang lain karena filenya akan di-encrypt. SQLChiper adalah pengembangan dari SQLite, please check di http://sqlcipher.sf.net

      Salam kenal bro Ddy, bisa tolong jelaskan lebih detail cara untuk meng – encrypt file database sqlite tapi tetap bisa diakses (CRUD) pada saat aplikasi di jalankan. Ane sudah coba meng – encrypt nya dengan menggunakan SQLite Maestro, tapi setelah itu database tidak bisa di akses. Terima kasih sebelumnya

  13. Handoko
    January 10, 2011 at 7:59 am

    Menarik nih sqlite tapi untuk ADO connectionstring kalo mau pake vb6 gimana?
    Tolong di email y ke mr_han2x@yahoo.com

    Tq

    • January 10, 2011 at 8:33 am

      Coba kesini om.

  14. DnA
    January 22, 2011 at 1:12 am

    ARTIKEL2 DI BLOG INI MEMANG MANTABS ABIZ🙂
    mo nanya nih, gimana ya caranya membuat databse kita include dalam installer aplikasi yang sudah kita buat. jadi saat aplikasi sudah dibuat package installer user tinggal jalanin, next next next finish maka aplikasi plus databasenya siap dijalankan. selama ini saya selalu install databasenya terpisah. mohon pencerahan.

    • January 22, 2011 at 4:25 am

      Tq om udah mampir, tp sayang si om enggak memberikan informasi database yg digunakan yg jelas sy sudah pernah ngebahas beberapa artikel tentang pembuat paket instalasi disini

      Selamat mencoba🙂

  15. aan giri
    February 7, 2011 at 5:29 am

    om, kok masih kluar debugnya ya? call modul nya gimana tuh

    • February 7, 2011 at 6:54 am

      wah si om pertanyaannya bikin bingung❓

  16. June 24, 2011 at 6:31 am

    Mantap sekali tutorialnya om, saya dah coba dan aplkasikan ke program. Lebih simple ketimbang menggunakan odbc. Terima kasih.

    • June 24, 2011 at 8:45 am

      Oke om, tq udah mampir🙂

  17. fajrin
    August 6, 2011 at 5:17 pm

    Bang… dari link yg abang kasih di atas saya bingung bang downloadnya dimana… maklum ga ngerti bahasa londo :)…
    trus saya mau nanya fungsi conn.begintrans, conn.committrans, dan DoEvent pada contoh diatas itu apa ya bang???
    Makasih sebelumnya…

    • August 8, 2011 at 2:24 am

      Oke om coba link ini, disitu udah disertain juga sample aslinya

      Begintrans dan committrans ada hubungannya dg proses transaction klo om nanti dapat matakuliah pemrogramam database lanjut biasa ini dipelajari juga.

      Inti proses dalam transaction tu klo sukses harus sukses semua begitu juga sebaliknya, misal om punya beberapa perintah dalam satu prosedur :
      1. insert transaksi pembelian
      2. update hutang supplier
      3. update stok barang

      misalkan perintah 1 dan 2 sukses tapi perintah 3 gagal maka perintah 1 dan 2 otomatis dianggap gagal.

  18. September 16, 2011 at 1:50 am

    Semua tutorial om berbobot banget. Curhat dunk OM… kalau buat installer aplikasi yang DB nya pake SQLite, component nya SQLite apa aja yang disertakan. Jadi nanti waktu install program tidak perlu instal SQLite Expert Personal 3 lagi. Makasih sebelumnya om..

    • September 16, 2011 at 2:00 am

      Klo mengacu postingan diatas agar bisa mengakses database SQLite cukup mengikut sertakan file sqlite36_engine.dll dan dhRichClient3.dll pada saat pembuatan paket instalasinya :

      [Files]
      Source: sqlite36_engine.dll; DestDir: {sys}; Flags: uninsneveruninstall sharedfile onlyifdoesntexist
      Source: dhRichClient3.dll; DestDir: {sys}; Flags: uninsneveruninstall sharedfile regserver onlyifdoesntexist
      

      Contoh skrip diatas jika menggunakan Inno Setup

  19. September 16, 2011 at 2:19 am

    Wah… Om nya fast respon nih… !!! Mantaffff… maturtangkyu om. Aku coba dulu.🙂

    • September 16, 2011 at 2:43 am

      Oke om kebetulan lagi OL😀

  20. September 16, 2011 at 8:41 am

    Om Admin curhat lagi ya.. Sekarang aq agak kesulitan di odbcnya nih.
    untuk file2 ODBC yang aq masukan di inno setup seperti ini :

    ;file hasil instalasi SQLite dan ODBC
    Source: “C:\Program Files\SQLite ODBC Driver\sqlite3_mod_blobtoxy.dll;” DestDir: {sys}; Flags: onlyifdoesntexist
    Source: “C:\Program Files\SQLite ODBC Driver\sqlite3_mod_extfunc.dll;” DestDir: {sys}; Flags: onlyifdoesntexist
    Source: “C:\Program Files\SQLite ODBC Driver\sqlite3_mod_fts3.dll;” DestDir: {sys}; Flags: onlyifdoesntexist
    Source: “C:\Program Files\SQLite ODBC Driver\sqlite3_mod_impexp.dll;” DestDir: {sys}; Flags: onlyifdoesntexist
    Source: “C:\Program Files\SQLite ODBC Driver\sqlite3_mod_rtree.dll;” DestDir: {sys}; Flags: onlyifdoesntexist
    Source: “C:\Program Files\SQLite ODBC Driver\sqlite3odbc.dll”; DestDir: {sys}; Flags: onlyifdoesntexist
    Source: “C:\Program Files\SQLite ODBC Driver\sqlite3odbcnw.dll”; DestDir: {sys}; Flags: onlyifdoesntexist
    Source: “C:\Program Files\SQLite ODBC Driver\sqliteodbc.dll”; DestDir: {sys}; Flags: onlyifdoesntexist
    Source: “C:\Program Files\SQLite ODBC Driver\sqliteodbcu.dll”; DestDir: {sys}; Flags: onlyifdoesntexist
    Source: “C:\Program Files\SQLite ODBC Driver\SQLiteODBCInstaller.exe”; DestDir: {sys}; Flags: onlyifdoesntexist

    Nah untuk bagian [run] scriptnya gimana om? untuk menjalankan dan mendaftarkan odbc yang saya buat menggunaka SQLite? Trimakasih lagi om…

    • September 16, 2011 at 9:10 am

      Tidak perlu semua file DLLnya ikutsertakan, cukup seperti dibawah ini untuk mendaftarkan dan menghapus driver SQLite ODBC cukup seperti ini om :

      [Files]
      Source: "C:\Program Files\SQLite ODBC Driver\sqlite3odbc.dll"; DestDir: {sys}; Flags: onlyifdoesntexist
      Source: "C:\Program Files\SQLite ODBC Driver\sqliteodbc.dll"; DestDir: {sys}; Flags: onlyifdoesntexist
      Source: "C:\Program Files\SQLite ODBC Driver\sqliteodbcu.dll"; DestDir: {sys}; Flags: onlyifdoesntexist
      
      Source: "C:\Program Files\SQLite ODBC Driver\instq.exe"; DestDir: {sys}; Flags: ignoreversion
      Source: "C:\Program Files\SQLite ODBC Driver\uninstq.exe"; DestDir: {sys}; Flags: ignoreversion
      
      [Run]
      ;install driver sqliteodbc
      Filename: "{sys}\instq.exe"; StatusMsg: "Tunggu sedang mendaftarkan driver SQLite"; Flags: runhidden
      
      [UninstallRun]
      ;uninstall driver sqliteodbc
      Filename: "{sys}\uninstq.exe"; StatusMsg: "Tunggu sedang menghapus driver SQLite"; Flags: runhidden
      

      Selamat mencoba🙂

  21. September 16, 2011 at 12:27 pm

    Om admin, saya sudah coba dengan script di atas, tapi waktu saya coba untuk install hasil program saya ke komputer dan pada saat proses mendaftarkan driver sqlite muncul error :

    Copy sqliteodbc.dll to C:\WINDOWS\System32\sqlite3odbc.dll failed
    Copy sqliteodbc.dll to C:\WINDOWS\System32\sqliteodbc.dll failed
    Copy sqliteodbc.dll to C:\WINDOWS\System32\sqliteodbcu.dll failed

    Setelah itu saya cek di system32, ketiga file tersebut dan instq.exe juga sudah tercopy. Kira-kira penyebab errornya karena apa ya om?

    Oh ya om 1 lagi, untuk mendaftarkan DSN nya gimana ya?
    Trimakasih..🙂

  22. September 16, 2011 at 3:55 pm

    Sorry Om, Pesan Errornya seperti ini :
    Copy sqlite3odbc.dll to C:\WINDOWS\System32\sqlite3odbc.dll failed
    Copy sqliteodbc.dll to C:\WINDOWS\System32\sqliteodbc.dll failed
    Copy sqliteodbcu.dll to C:\WINDOWS\System32\sqliteodbcu.dll failed
    Makasih sebelumnya om..

    • September 16, 2011 at 4:54 pm

      Coba semua nilai DestDir {sys} diatas diganti menjadi {app} om.

      Termasuk {sys} yg di section Run dan UninstallRun

  23. September 16, 2011 at 6:37 pm

    Wah…. betul3x om. senangnya hatiku. akhirnya sukses juga. hehehhe… Oh ya om, curhat lagi. Di contoh yang mysql kan ada tuh untuk mendaftarkan DSN :

    ;install dsn-albasi
    Filename: “{sys}\myodbc3i.exe”; Parameters: “-a -su -t””DSN=dsn-albasi;DRIVER=MySQL ODBC 3.51 Driver;SERVER=127.0.0.1;DATABASE=albasi;UID=root;PWD=masterkey”” -w”; Flags: runhidden; StatusMsg: “Tunggu sedang membuat DSN-ALBASI”

    Nah.. kalau di SQLite ada gak om? kalau ada, boleh dunk di share lagi om, heheh😀 maaf ya om, merepotkan. Untuk kesekian kalinya terimakasih banyak om..

  24. September 16, 2011 at 7:42 pm

    Om untuk mendaftarkan DSN SQLite script inno setup nya sudah sukses saya buat seperti ini

    [Registry]
    Root: HKCU; Subkey: “Software\ODBC\ODBC.INI\ODBC Data Sources”; ValueType: string; ValueName: “SQLiteDSN”; ValueData: “SQLite3 ODBC Driver”; Flags: deletevalue
    Root: HKCU; Subkey: “Software\ODBC\ODBC.INI\SQLiteDSN”; ValueType: string; ValueName: “Database”; ValueData: {app}\Db\mydb.db3; Flags: uninsdeletevalue
    Root: HKCU; Subkey: “Software\ODBC\ODBC.INI\SQLiteDSN”; ValueType: string; ValueName: “Description”; ValueData: ; Flags: uninsdeletevalue
    Root: HKCU; Subkey: “Software\ODBC\ODBC.INI\SQLiteDSN”; ValueType: string; ValueName: “Driver”; ValueData:{sys}\sqlite3odbc.dll; Flags: uninsdeletevalue
    Root: HKCU; Subkey: “Software\ODBC\ODBC.INI\SQLiteDSN”; ValueType: string; ValueName: “FKSupport”; ValueData: “0”; Flags: uninsdeletevalue
    Root: HKCU; Subkey: “Software\ODBC\ODBC.INI\SQLiteDSN”; ValueType: string; ValueName: “LoadExt”; ValueData: ; Flags: uninsdeletevalue
    Root: HKCU; Subkey: “Software\ODBC\ODBC.INI\SQLiteDSN”; ValueType: string; ValueName: “LongNames”; ValueData: “0”; Flags: uninsdeletevalue
    Root: HKCU; Subkey: “Software\ODBC\ODBC.INI\SQLiteDSN”; ValueType: string; ValueName: “NoCreat”; ValueData: “0”; Flags: uninsdeletevalue
    Root: HKCU; Subkey: “Software\ODBC\ODBC.INI\SQLiteDSN”; ValueType: string; ValueName: “NoTXN”; ValueData: “0”; Flags: uninsdeletevalue
    Root: HKCU; Subkey: “Software\ODBC\ODBC.INI\SQLiteDSN”; ValueType: string; ValueName: “NoWCHAR”; ValueData: “0”; Flags: uninsdeletevalue
    Root: HKCU; Subkey: “Software\ODBC\ODBC.INI\SQLiteDSN”; ValueType: string; ValueName: “OEMCP”; ValueData: “0”; Flags: uninsdeletevalue
    Root: HKCU; Subkey: “Software\ODBC\ODBC.INI\SQLiteDSN”; ValueType: string; ValueName: “ShortNames”; ValueData: “0”; Flags: uninsdeletevalue
    Root: HKCU; Subkey: “Software\ODBC\ODBC.INI\SQLiteDSN”; ValueType: string; ValueName: “StepAPI”; ValueData: “0”; Flags: uninsdeletevalue
    Root: HKCU; Subkey: “Software\ODBC\ODBC.INI\SQLiteDSN”; ValueType: string; ValueName: “SyncPragma”; ValueData: ; Flags: uninsdeletevalue
    Root: HKCU; Subkey: “Software\ODBC\ODBC.INI\SQLiteDSN”; ValueType: string; ValueName: “Timeout”; ValueData: ; Flags: uninsdeletevalue

    Kira-kira ada yang lebih simple tidak Om?
    Trims..

    • September 16, 2011 at 10:57 pm

      Dibagian section Files tambahkan file adddsn.exe dan remdsn.exe :

      [Files]
      Source: "C:\Program Files\SQLite ODBC Driver\adddsn.exe"; DestDir: {app}; Flags: ignoreversion
      Source: "C:\Program Files\SQLite ODBC Driver\remdsn.exe"; DestDir: {app}; Flags: ignoreversion
      

      kemudian revisi untuk section Run dan UninstallRun :

      [Run]
      ; menambahkan dsn
      Filename: "{app}\adddsn.exe"; Parameters: """SQLite3 ODBC Driver"" DSN=nama-dsn;Database=c:\db\db_sqlite.db3"; StatusMsg: "Tunggu sedang membuat DSN"; Flags: runhidden
      
      [UninstallRun]
      ; menghapus dsn
      Filename: "{app}\remdsn.exe"; Parameters: """SQLite3 ODBC Driver"" DSN=nama-dsn"; StatusMsg: "Tunggu sedang menghapus DSN"; Flags: runhidden
      

      Skrip diatas belum sy coba, mudah2xan bisa😀

  25. September 17, 2011 at 1:00 am

    Wah.. sip neh om, lebih singkat kalau gini. Makasih banyak ya om, nambah lagi deh ilmunya. ^_^

    • September 17, 2011 at 1:30 am

      Sama2x om🙂

  26. September 26, 2011 at 12:04 am

    Pagi Om…

    Mau tanya lagi nih, kalau untuk hapus file setelah proses instalasi gmn ya? saya sudah coba tambahkan script seperti ini :
    [InstallDelete]
    Type: files; Name: {app}\instq.exe
    Type: files; Name: {app}\remdsn.exe
    Type: files; Name: {app}\sqlite3odbc.dll
    Type: files; Name: {app}\sqliteodbc.dll
    Type: files; Name: {app}\sqliteodbcu.dll
    Type: files; Name: {app}\adddsn.exe
    Type: files; Name: {app}\uninstq.exe

    Tapi tidak berhasil juga, file2 tersebut tetap tidak terhapus dari folder hasil installer. Mohon pencerahannya om. Trims…

    • September 26, 2011 at 4:21 am

      Salah section om, seharusnya section UninstallDelete

  27. newbie
    November 6, 2011 at 1:16 pm

    bos kalo nyimpen n nampilin image lewat sqlite giman.. mohon pencerahan..

    • November 8, 2011 at 8:38 am

      Kayaxnya sama om dg artikel yg disini.

      • newbie
        November 9, 2011 at 8:10 am

        bukan .mdb ms acces bos, tapi sqlite .db3

        • November 9, 2011 at 8:38 am

          Nah itulah om kemudahan akses database menggunakan ADO (ActiveX Data Objects), bisa mengakses database yang berbeda-beda dengan kode yang sama (tentunya dengan sedikit penyesuaian).
          Intinya silahkan dicoba dulu, klo ada error baru laporan kesini.

  28. Hidayat
    November 10, 2011 at 5:10 am

    salam kenal mas..
    sya lgi belajar VB6 & SQLite
    bisa minta tlng contoh aplikasi vb6 + SQLite nya ga?
    dri instert, edit, delete, add dsb…dngan menggunakan listview & listbox dll…
    terima kasih sblum nya

    • November 10, 2011 at 9:45 am

      Wah ini cara belajar memprogram yang jelek om, jangan dipertahankan.

      1. Contoh INSERT, UPDATE, DELETE dan SELECT kan sudah ada contohnya diatas.
      2. Untuk cara penggunaan ListView bisa dilihat disini.
      3. Menampilkan data di ListBox juga gampang

      Private Sub Command1_Click()
          Dim i As Integer
          
          For i = 1 To 10
              List1.AddItem "Item #" & i
          Next i
      End Sub
      
      • Hidayat
        November 11, 2011 at 4:12 am

        Hehehe…iya memang buruk cara belajar sya mas….
        tpi klau cma lewat source tanpa sampel, paling engga gambar nya gitu..baru saya paham mas😀
        maklum mas…IQ saya rendahan..hehehe

        • November 11, 2011 at 6:47 am

          Waduh jangan merendah gitu om, entar diinjak-injak2x loh😀
          Jadi intinya kita jarang sekali mendapatkan contoh kode program yg sesuai dg keinginan, yg penting gimana mempelajari contoh kode yg mirip trus disesuaikan dg kebutuhan.

  29. November 10, 2011 at 6:25 pm

    Sebelumnya tanks for coding4ever
    sekedar berbagi source code sqlite :
    http://www.4shared.com/file/waj2c2Ys/TEST.html

    • November 11, 2011 at 1:36 am

      Tq om sudah berbagi source code🙂

    • Hidayat
      November 11, 2011 at 4:14 am

      mksh mas…sya ikut belajar jga …

      • November 11, 2011 at 6:49 am

        Nah tuh om udah ada yg ngasih contoh.

        Happy coding🙂

        • Hidayat
          November 11, 2011 at 6:52 am

          Terimakasih bnyak buat mas k4m4r82 & mas Mad kartam. skrng sya dah bisa untuk coding nya…walau punya mas Mad.K cuma buat Referensi Tampilan nya. buat mahamin alur nya …😀

          Happy coding

          • November 11, 2011 at 8:27 am

            Sama2x om

  30. November 11, 2011 at 4:28 pm

    syeepp.. belajar bersama coding4ever

  31. Hidayat
    November 11, 2011 at 7:50 pm

    Permisi mas, mau tanya nih…
    ga tau apa nya yg salah….sya msih blum bsa untuk fungsi UPDATE di SQLite nya..
    Untuk Fungsi Insert, Delete sdh bisa..
    bisa mnta tlong di koreksi dimna nya yg salah..
    ‘=======================================================================
    Listview = lsvProv
    CommandButton = cmdUpdate

    – Isi Database yg diinput :
    Table = Provider

    – Isi Field Table Provider :
    ID (dg type INTEGER)
    Nama (dg type VARCHAR)
    Kode (dg type VARCHAR)
    Maxdigit (dg type NUMBER)

    ‘=======================================================================
    Private Sub cmdUpdate_Click()
    On Error Resume Next
    Dim cmd As cCommand

    SQL = “UPDATE provider SET Nama = ?, Kode = ?, Maxdigit = ? WHERE ID = ?”
    Set cmd = Cnns.CreateCommand(SQL)
    With cmd
    .SetText 1, txtNSplr.Text
    .SetText 2, txtKSplr.Text
    .SetText 3, txtDSplr.Text
    .SetText 4, lsvProv.SelectedItem.SubItems(1)
    .Execute
    End With
    Set cmd = Nothing

    LoadProvider
    End Sub
    ‘=======================================================================

    • November 12, 2011 at 2:41 am

      Pada saat memanggil method untuk mengisi parameter dan nilainya harus diperhatikan tipe datanya om. Klo tipenya varchar kan pake SetText tp klo tipenya integer pake SetInt32.
      Klo ngeliat kodenya om diatas seharusnya untuk MAXDIGIT dan ID menggunakan SetInt32.

      • Hidayat
        November 12, 2011 at 5:57 am

        Admin :
        Pada saat memanggil method untuk mengisi parameter dan nilainya harus diperhatikan tipe datanya om. Klo tipenya varchar kan pake SetText tp klo tipenya integer pake SetInt32.
        Klo ngeliat kodenya om diatas seharusnya untuk MAXDIGIT dan ID menggunakan SetInt32.

        sudah sya ubah seperi ini mas
        ‘================================================
        Private Sub cmdUpdate_Click()
        On Error Resume Next
        Dim cmd As cCommand

        SQL = “UPDATE provider SET Nama = ?, Kode = ?, Maxdigit = ? WHERE ID = ?”
        Set cmd = Cnns.CreateCommand(SQL)
        With cmd
        .SetText 1, txtNSplr.Text
        .SetText 2, txtKSplr.Text
        .SetInt32 3, txtDSplr.Text
        .SetInt32 4, lsvProv.SelectedItem.SubItems(1)
        .Execute
        End With
        Set cmd = Nothing

        LoadProvider
        End Sub
        ‘================================================
        tapi kok tetep aja yah? database nya ga mau ke update…

  32. November 12, 2011 at 7:08 am

    @ hidayat : semoga membantu
    If LSVPROV.ListItems.Count 0 Then
    SQL = “UPDATE provider” _
    & ” SET nama='” & txtNSplr & “‘, ” _
    & ” kode='” & txtKSplr & “‘, ” _
    & ” maxdigit ='” & txtDSplr & “‘ ” _
    & ” WHERE ID= ‘” & LSVPROV.SelectedItem.SubItems(1) & “‘ ”

    Cnns.Execute SQL
    LOADDATA
    txtNSplr = “”
    txtKSplr = “”
    txtDSplr = “”
    End If

    source kode lengkap:
    http://dc269.4shared.com/download/I-1r8vdr/PROVIDER.rar?tsid=20111112-070657-dc216c19

    • Hidayat
      November 12, 2011 at 8:07 am

      maaf mas, tetep ga jdi euy….

      mungkin perbedaan nya di tampilan listview mas
      data yg di tampilkan di listview nama, kode, maxdigit.

      ‘================================================
      Sub LoadProvider()
      On Error Resume Next
      Dim t As Object
      With lsvProv.ListItems
      .Clear

      SQL = “SELECT ID, Nama, Kode, Maxdigit FROM provider ORDER BY ID”
      Set RS = Cnns.OpenRecordset(SQL)

      ‘RS.MoveFirst
      Do While Not RS.EOF
      Set t = lsvProv.ListItems.Add
      t.SubItems(1) = RS!Nama
      t.SubItems(2) = RS!Kode
      t.SubItems(3) = RS!Maxdigit
      t.SmallIcon = 1
      t.Selected = True
      RS.MoveNext
      Set t = Nothing
      Loop
      Set RS = Nothing
      End With

      ListAutoNumber1
      End Sub
      ‘================================================
      dan untuk ID di dlm DB nya sya set Autonumber…

  33. November 12, 2011 at 9:28 am

    Set t = LSVPROV.ListItems.Add
    t.SubItems(1) = RS!id <<<<< ambah ini bro
    t.SubItems(2) = RS!Nama
    t.SubItems(3) = RS!Kode
    t.SubItems(4) = RS!Maxdigit

    masalahnya kan updatenya WHERE ID= ‘” & LSVPROV.SelectedItem.SubItems(1) & “‘ ”
    id di sub item 1

    semangat..

  34. Hidayat
    November 12, 2011 at 9:38 am

    mad kartam :
    Set t = LSVPROV.ListItems.Add
    t.SubItems(1) = RS!id <<<<< ambah ini bro
    t.SubItems(2) = RS!Nama
    t.SubItems(3) = RS!Kode
    t.SubItems(4) = RS!Maxdigit
    masalahnya kan updatenya WHERE ID= ‘” & LSVPROV.SelectedItem.SubItems(1) & “‘ ”
    id di sub item 1
    semangat..

    nah itu dia mas..sya ga ingin menampilkan ID nya ke listview
    kira2 ada solusi ga yah?

    • November 12, 2011 at 9:49 am

      Set t = LSVPROV.ListItems.Add
      t.SubItems(1) = RS!id

      kan udah menampilkan id,
      kalo di sorce kode tadi coloum headernya emang tidak ditampilin,
      LSVPROV.ColumnHeaders(2).Width = 1000 < coloum header, index 2 ganti widhtnya..

      • Hidayat
        November 12, 2011 at 9:57 am

        iya mas, tp memang sngaja sya tdk menampilkan ID nya mas.
        untuk Fungsi UPDATE WHERE ID = ? sya ganti dngan dngan data yg di tampilkan WHERE Nama = ? tp knp ga bsa ya?

  35. November 12, 2011 at 10:04 am

    coba mas hidayat uplod kkodenya, atau pake teamviewer, barangkali bisa membantu

    • Hidayat
      November 12, 2011 at 10:08 am

      ok sbntar sya upload source nya mas..

  36. Hidayat
    November 12, 2011 at 10:24 am

    mad kartam :
    coba mas hidayat uplod kkodenya, atau pake teamviewer, barangkali bisa membantu

    ini mas…tlng dikoreksi ya..
    http://upload.ugm.ac.id/247testSQLite.rar

  37. November 12, 2011 at 11:16 am

    Wah sy jadi penonton yg baik aja deh, sing penting akur om🙂

  38. November 12, 2011 at 11:33 am
  39. November 12, 2011 at 11:40 am

    mr admin ya meneeeng bae…
    kalo where jangan pake nama, soalnya kan nama bisa jadi doble, nanti update yang namanya sama, fungsi id kan untuk membedakan record..
    rameeee.. ada mr admin

    • Hidayat
      November 12, 2011 at 11:59 am

      iya mas..mksh sblm nya…tp dsni kan di tampilkan ID nya ke dlm listview.
      klau keinginan sya itu tdk menampilkan ID ke dlm listview nya. tp ttep bisa di update. gitu mksd sya mas..bisa ga kra2? atau memang hrus ID di tmpilkan di dlm Listview nya??

      mas K4m4r82 bntuin jga donk… ^:)^😀😀

  40. November 12, 2011 at 12:04 pm

    lsvProv.ColumnHeaders.Add , , “id”, 500 << ganti 500 ganti jadi 0 tar ga tampil dech..

  41. Hidayat
    November 12, 2011 at 12:14 pm

    mad kartam :
    lsvProv.ColumnHeaders.Add , , “id”, 500 << ganti 500 ganti jadi 0 tar ga tampil dech..

    ga slusi lain yah mas? “hehe bnyakan nawar yah”

    • November 12, 2011 at 12:24 pm

      bisa aja sich… banyak cara menuju roma, salah satunya pas kamu select dilistview ngambil ID di db where nama dan kode, soalnya kalo cuma nama kan ada data dobel, dtrus taruh di text1 / lbl terserah, trus UPDATE nya where ID = text1

  42. November 12, 2011 at 12:35 pm

    Sy manut dg solusi om mad kartam (susah amat nyebutnya :D) dg menambahkan kolom ID n lebarnya diset menjadi 0, kayaxnya itu udah cukup menyelesaikan masalah🙂

  43. November 12, 2011 at 12:45 pm

    Mr admin angkat besi, eh angkat bicara dink.. xixixi
    mr admin mesti namanya lebih susah ya nyebutnya makane pake nama admin..

    • Hidayat
      November 13, 2011 at 7:03 pm

      maaf, lupa ngucapin terima ksih..agak sibuk lg ada krjaan tmbahan..hehe😀
      oh ya ada lgi nih yg ingin sya tanyakan

      bgmna cra menampilkan data di textbox berdasarkan text di ComboBox yg kta pilih?

      misal ComboBox berisi : Kode produk dri database
      lalu ingin menampilkan nama supplier nya ke dlm textbox, berdsrkan Kode Produk yg dipilih.
      jdi isi di database Kode Produk = KL-112 & KL-113 Nama Supplier = Cemara & Mitra
      saat di combobox di pilih yg KL-112 maka yg muncul di TextBox adlah Cemara..

      mhon bantuan nya..mksh sblm nya

      • November 15, 2011 at 12:31 pm

        Struktur lengkap tabelnya gimana om ?

        • Hidayat
          November 15, 2011 at 12:42 pm

          Isi Tabel dalam Database SQLite.db3:
          Provider (ID, Nama, Kode, Maxdigit)
          Prefix (ID, No_prefix, id_supplier)

          pada form terdapat:
          1 ComboBox, 2 Textbox

          ComboBox menampilkan Provider (kode)
          saat isi ComboBox di klik otomatis memunculkan Provider(Nama)

          krnglebih begitu mas gambaran nya…

          • November 15, 2011 at 1:01 pm

            Kayaxnya lebih kurang gini om :

            Private Sub Command1_Click()
                Dim rs  As ADODB.Recordset
                
                Dim strSql As String
                
                strSql = "SELECT nama FROM Provider WHERE id = '" & ComboBox.Text & "'"
                Set rs = New ADODB.Recordset
                rs.Open strSql, conn
                If Not rs.EOF Then
                    TextBox.Text = rs("nama").Value
                End If
                rs.Close
                Set rs = Nothing
            End Sub
            
            • Hidayat
              November 15, 2011 at 4:15 pm

              maaf mas..klau ga slah, bukannya itu untuk database MS Access yah mas?

              ini gambaran jelas nya mas..dsitu ada DB nya jga

              http://upload.ugm.ac.id/887testSQLite.rar

              • November 18, 2011 at 6:16 am

                Sama aja seperti jawaban sy sebelumnya

                Private Sub CboKProv_Click()
                    Dim rs  As cRecordset
                        
                    SQL = "SELECT nama FROM provider WHERE Kode = '" & CboKProv.Text & "'"
                    
                    Set rs = Cnns.OpenRecordset(SQL, True)
                    If Not rs.EOF Then
                        txtProv.Text = rs("nama").Value
                    End If
                End Sub
                
  44. November 18, 2011 at 4:54 am

    wah…. capek juga. baca semua comment dari atas sampe bawah… mantap artikelny bos,,, lagi mw blejar sqlite3

  45. November 18, 2011 at 6:16 am

    Oke om sipp

  46. December 30, 2011 at 6:52 pm

    gmna cara nya update table / Fields di dlm DB SQLite tpi tnpa menghapus isi DB sebelum nya ya? tp tnpa melalui “SQLite Expert Personal”…

    mksh sblum nya..😀

    • January 3, 2012 at 1:14 pm

      Klo tanpa “SQLite Expert Personal” ya bisa menggunakan tool SQLite atau buat sendiri.

      • Hidayat
        January 3, 2012 at 1:19 pm

        maaf, bisa minta contoh nya mas?

        • January 3, 2012 at 1:23 pm

          Si om lucu bercanda aja nih😀, bukanny postingan sy diatas tu merupakan contoh untuk mengakses SQLite menggunakan visual basic

          • Hidayat
            January 3, 2012 at 1:27 pm

            klau MySql kan bisa menggunakan *.sql dump..nah mksd sya klau SQLite bgmna cra nya update Table / FIleds di dlm dtabase tnpa menghilangkan isi table/Filed yg sebelum nya?..

            • January 7, 2012 at 1:07 pm

              Sy sendiri belum pernah coba untuk backup dan restorenya tapi tools dan referensinya siap untuk dicoba🙂

  47. bramantyo
    March 7, 2012 at 11:59 am

    bro master, ane ingin buat penambahan stok secara otomatis yg tergantung dari penjualan atau pembelian (jika jual maka stok berkurang, jika beli stok bertambah). Kalo di SQL 2000 ane bisa dengan trigger, kalo di SQLite ane masih bingung dengan sintaxnya, mungkin bro master bisa beri contoh, trims

    • March 9, 2012 at 3:55 pm

      Ada banyak referensi nih om yg siap untuk dicoba
      1. CREATE TRIGGER
      2. SQLite / SQL Tutorials
      3. SQLite – Triggers

      Karena ada kemiripan antara trigger di Firebird dan SQLite jadi sy juga untuk menyarankan untuk mencoba link ini.

      Gimana, berani untuk mencoba ?🙂

      • bramantyo
        April 15, 2012 at 1:55 am

        Bro, thanks ya atas replay tentang trigger di sqlite, nah sekarang ane ada permasalahan lagi nih pada saat membuat setup / instaler agar aplikasi yg ane buat dengan menggunakan database sqlite bisa didistribusikan ke komputer lain. Pada saat ane buat setupnya lalu ingin di instal di komputer lain bisa terinstal tapi pada saat ingin login aplikasi (konek ke database sqlite) ada error tentang file “SQlite.Interop.dll”, mungkin bro master punya pencerahan juga untuk kasus ini, syukur2 ada tutorial bahasa indonesianya, thanks ya bro

  48. dhan
    April 8, 2012 at 7:26 pm

    kalo yang ngk pake odbc gimana

    • April 9, 2012 at 4:10 pm

      Ya salah satunya pake library yang sy bahas diatas om, jadi enggak perlu pake acara install driver ODBC segala.

  49. bramantyo
    April 15, 2012 at 1:48 am

    Bro, thanks ya atas replay tentang trigger di sqlite, nah sekarang ane ada permasalahan lagi nih pada saat membuat setup / instaler agar aplikasi yg ane buat dengan menggunakan database sqlite bisa didistribusikan ke komputer lain. Pada saat ane buat setupnya lalu ingin di instal di komputer lain bisa terinstal tapi pada saat ingin login aplikasi (konek ke database sqlite) ada error tentang file “SQlite.Interop.dll”, mungkin bro master punya pencerahan juga untuk kasus ini, syukur2 ada tutorial bahasa indonesianya, thanks ya bro

    • April 15, 2012 at 6:12 am

      Mungkin file System.Data.SQLite.dllnya kelupaan, file SQlite.Interop.dll dan System.Data.SQLite.dll harus satu folder pada saat didistribusikan

      • bramantyo
        April 15, 2012 at 8:14 am

        Sudah mas bro, kedua file tersebut sudah saya letakkan di satu folder yang sama didalam folder project. Yang saya bingung juga file SQlite.Interop.dll tidak bisa ditambahkan sebagai references project, sedangkan file System.Data.SQLite bisa ditambahkan sebagai references Saya menggunakan SQlite untuk project dengan VB.Net 2010.

        • bramantyo
          April 15, 2012 at 8:32 am

          file SQlite.Interop.dll tidak ter-Deploy (tidak ter-include dalam sama sekali dalam folder setup), sedangkan file System.Data.SQLite ter-Deploy … padahal ane sudah letakkan dalam satu folder yang sama sebelum ane buat setup nya

        • April 15, 2012 at 8:48 am

          File SQlite.Interop.dll tidak bisa diadd sebagai reference karna masuk dalam kategori unmanaged dll

          • April 15, 2012 at 8:51 am

            Bukannya sudah ada library khusus untuk dot NET misalnya ADO.NET 2.0 Provider for SQLite

            Untuk masalah om coba main2x kesini.

            • bramantyo
              April 15, 2012 at 10:51 am

              trims ya bro, eh ngomong2, suka dengar radio rodja juga ya, ane lagi belajar juga nih, ternyata banyak yg salah ya dengan adat istiadat kita ya yg dianggap sebagai bagian dari agama. Oh iya bro, domisili dimana ? kerja or kuliah ?
              kalo ane tinggal di bekasi, masih kuliah, pernah kerja tapi sekarang lagi jadi pengacara

              • April 15, 2012 at 11:30 am

                Ya begitulah om😀, di masyarakat kita banyak yg enggak care dg agamanya kita tanya saja satu amalan apakah termasuk bagian dari syariat atw bukan pasti kebanyakan dari mereka bingung membedakannya😀.

                Intinya gini om, di dalam agama kita ada dua hidayah, yg pertama hidyah kepada islam yg otomatis sudah kita dapatkan karena orang tua kita seorang muslim yg kedua hidayah kepada sunnah.

                Untuk hidayah yg kedua ini, kita yg harus pro aktif mencarinya dan jika sudah kita dapatkan harus tetap kita pertahankan apapun yg terjadi, wallahualam🙂 (halah pake acara ngasih nasehat lagi :D)

                Klo sy kebetulan ngajar di salah satu kampus swasta di Yogyakarta😀

                • bramantyo
                  April 15, 2012 at 11:45 am

                  oh ! di jogja toh dab ! ane dulu juga pernah sekolah di Jogja waktu SMP dulu, di Muh Colombo – Demangan. Banyak teman ane disana mas. Ngajar di kampus apa ? kali2 aku main ke Joga lagi, bisa nih copy darat kita, kita tetek – tetek ning angkringan malioboro dab sambil ngoding, hehehe, pokoke jogja is n’the m’best lah, happy coding

                  • April 15, 2012 at 1:44 pm

                    Ya boleh lah, klo udah di Jogja komen aja lagi disini😀

                    Coding* bareng juga boleh😀

                    *Coding = Copy dingin😀

  50. April 21, 2012 at 12:23 am

    siipp…
    monggo kulo aturi mampir wonten gubuk kawulo…🙂
    maturnuwun….

  51. April 22, 2012 at 6:37 am

    Halah si om malah buka lapak disini, sebulan 100 rb loh om😀

  52. ruben
    April 27, 2012 at 6:59 am

    Kalo mau alter column datatype dan size gimana om? nuhun..

    • April 27, 2012 at 10:02 am

      Gini mungkin ya ?😀

      Contoh merubah field nama_barang menjadi 50 di tabel barang

      ALTER TABLE barang ALTER COLUMN nama_barang VARCHAR(50)
      
  53. ruben
    April 27, 2012 at 7:55 am

    dI nOMOR 6;
    “Hati-hati jangan langsung mengunakan kode seperti berikut :
    Private Sub cmdTest1_Click()
    Dim cmd As cCommand
    Dim i As Integer

    strSql = “INSERT INTO tabel_test (no_urut) VALUES (?)”

    Set cmd = conn.CreateCommand(strSql)
    For i = 1 To 1000
    cmd.SetInt32 1, i
    cmd.Execute
    Next i
    Set cmd = Nothing
    End Sub

    Mengapa Om?

    • April 27, 2012 at 10:03 am

      Makanya dicoba sendiri aja om, hasil pengalaman sendiri kayaxnya lebih baik😀

      Kayaxnya juga udah sy kasih penjelasan kenapa sebaiknya tidak menggunakan cara tersebut

  54. AngeL
    July 9, 2012 at 11:02 am

    Om, mo nanya nih.. Jadi ceritanya aku mo filtering database berdasarkan nomor urut. Kondisinya, misal aku “find” nomor urut 19, dan yg pengen tak tampilin itu cuma 5 record sebelum dan 5 record sesudah nomor urut 19 itu.. Jd yg tampil nanti nomor urut 14 s.d 24. Kira2, SQL statement yg dipakai gimana ya? Aku udah gugling tapi belum beruntung dapet keyword yg pas nih. Mampir sini deh, hee😀 Makasih sebelumnya om..

    • July 9, 2012 at 2:41 pm

      Bukannya cuma gini aja om :

      SELECT * FROM tabel
      WHERE no_urut BETWEEN 19 - 5 AND 19 + 5
      
      • AngeL
        July 11, 2012 at 1:54 pm

        Hee, iya om, ternyata aku ada yg kurang pas di koneksi table-nya.. Aku pake Postgre ni om.. Makasi ya om responnya😉

      • AngeL
        July 11, 2012 at 2:17 pm

        Oiya om, akhirnya aku pake LIMIT OFFSET, soalnya nomor urutnya ga urut, karna aku sort bersdasarkan waktu prosesnya.. Sekali lagi makasi ya om udah merepotkan, hee😀

        • July 12, 2012 at 11:05 am

          Oke om sama2x

  55. MowLn
    July 11, 2012 at 6:52 pm

    Assalamu’alaikum…Gan Cara Nyambungin DB SQLite Ke Data Report VB 6 Gmn Ya Gan?Trims….🙂

    • July 12, 2012 at 11:26 am

      Waalaikumussalam
      Berikut langkah-langkahnya :
      1. Download dan install SQLite ODBC Driver
      2. Buat ODBC Data Source (item ODBC ada di bagian Control Panel) utk database yg akan dibuat reportnya
      3. Setting objek koneksi dari DataEnvironment seperti biasa.

      • MowLn
        July 12, 2012 at 7:19 pm

        Ok, Trim’s Gan, Ane Coba Dulu!🙂

        • July 15, 2012 at 1:57 pm

          Oke om sipp🙂

  56. Hendro C.
    November 25, 2012 at 8:40 am

    Om, admin. Koq alamat http://www.thecommon.net/2.html ngak bisa diakses ya? Apakah ada alamat yang lainnya untuk download dhSQLite. Thx, sebelumnya.

  57. January 5, 2013 at 9:07 am

    kalo nambah project references pakai app.path gimana caranya?
    mohon bantuannya..
    matur thankyu..

    • January 5, 2013 at 11:08 am

      Maksudnya om ?

  58. agung
    May 7, 2013 at 1:24 pm

    Assalamu’alaikum…Om kalau misal terjadi update tabel misal penambahan field baru gitu. cara buat updatenya gimana ya. maksudnya kalau di sqlite, coding di vbnya gimana buat fungsi untuk mengecek tabel dan field. jadi ketika aplikasi jalan pertama kali harus cek table dan field. mohon bantuannya om, trims🙂

    • May 7, 2013 at 2:05 pm

      Waalaikumussalam

      Cara pertama bisa dengan memanfaatkan SQLite Schema Information Metadata.

      Cara kedua buat dua buah fungsi misal dg nama isTableExist dan isFieldExist.

      Private Function isTableExist(ByVal tabelName As String) As Boolean
          Dim rs  As ADODB.Recordset
          
          On Error GoTo errHandle
          
          ' TODO : lakukan perintah untuk mengakses tabelName
          strsql = "SELECT * FROM " & tabelName
          Set rs = New ADODB.Recordset
          rs.Open strsql, conn
          
          ' klo tabel sudah ada
          isTableExist = True
          
          Exit Function
      errHandle:
          ' klo tabel belum ada akan menyebabkan error
          isTableExist = False
      End Function
      
      Private Function isFieldExist(ByVal tabelName As String, ByVal fieldName As String) As Boolean
          Dim rs  As ADODB.Recordset
          
          On Error GoTo errHandle
          
          ' TODO : lakukan perintah untuk mengakses field dan tabelName
          strsql = "SELECT " & fieldName & " FROM " & tabelName
          Set rs = New ADODB.Recordset
          rs.Open strsql, conn
          
          ' klo field sudah ada
          isFieldExist = True
          
          Exit Function
      errHandle:
          ' klo field belum ada akan menyebabkan error
          isFieldExist = False
      End Function
      

      kemudian lakukan pengetesan seperti berikut :

      Private Sub cmdTes_Click()
          If Not isTableExist("siswa") Then
              ' TODO : buat tabel siswa
          End If
          
          If Not isFieldExist("siswa", "alamat") Then
              ' TODO : tambahkan field alamat
          End If
      End Sub
      
  59. agung
    May 10, 2013 at 10:50 am

    Sippp… Om sudah bisa. trimakasih, oh ya sekalian teknik paging nya dong om, di share juga hehehe…

  60. July 21, 2013 at 3:54 am

    saya kesulitan meregister library .Net dari System.Data.SQLite.dll gimana ya cara registernya gagal terus..

    • July 22, 2013 at 1:47 pm

      Enggak perlu di register lagi om, cukup tambahkan referensi System.Data.SQLite ke project yg om buat

      • July 23, 2013 at 9:14 am

        kalw itu udah tahu om. Jadi gini cara mendistribusikan library System.Data.SQLite.dll itu gimana ya klw pake inno setup? Soalnya setelah dijalankan dikomputer lain aplikasi dengan library tersebut tetep ga bisa dibuka. Jadi saya harus instal juga SQLite Connectornya pake sqlite-netFx20-setup-x86-2005-1.0.87.0.
        Nah, saya pengennya aplikasi yang dibuat langsung instal sekali jadi disatuin gimana? bagaimana cara distribusinya.

        • July 23, 2013 at 9:21 am

          Kan di folder bin\Release atau bin\Debug sudah ada file System.Data.SQLite.dll jadi enggak usah nginstall lagi file sqlite-netFx20-setup-x86-2005-1.0.87.0nya.

          Jadi klo pake inno skripnya ya cukup seperti ini :

          [Files]
          Source: "d:\MyApp\bin\Release\System.Data.SQLite.dll"; DestDir: {app}; Flags: ignoreversion
          
          • July 23, 2013 at 6:01 pm

            Ya om memang seperti itu saya buat. Tapi tetep aplikasinya ga bisa dibuka. Dan harus diinstal sqlite_netfx20 nya terlebih dahulu baru bisa dibuka. Anehnya ketika saya uninstal sqlite_netFx20 nya, aplikasi masih bisa dibuka. Harusnya kan kalaw misalkan sqlite_netfx20 nya diuninstal berarti ga perlu dinstal lagi dari awal sqlite_netfx20 nya. Kira-kira kenapa om masalahnya ? apa ada yang kurang komponennya atau ada registry yang dirubah/ditambah?

            • July 23, 2013 at 9:46 pm

              Ini sample aplikasi yg sy buat menggunakan C# 2008 untuk mengakses SQLite, coba deh langsung om jalankan tanpa menginstall sqlite_netfx20.

              Download

  61. July 24, 2013 at 9:03 am

    Udah di download dan aplikasinya berhasil. Dan memang kalaw komputernya udah pernah di instal sqlite_netfx20 kemungkinan berhasil walaupun SQLite_netfx20 nya diuninstal lagi.. Tar saya cek lagi dikomputer yang belum pernah diinstal sqlite_netfx20.
    Coba om cek aplikasi yang saya buat (tapi dicoba di komputer yang belum pernah diinstal sqlite_netfx20) –>
    https://app.box.com/s/4b1gih7dkrm4m272ldjs

    • July 25, 2013 at 6:37 am

      Aplikasinya om, sy jalankan di tempat sy juga error😛

      • July 25, 2013 at 8:52 am

        Nah itu masalahnya om, tapi klaw udah dinstal Sqlite netfx20 dengan versi netFx20-setup-x86-2005-1.0.87.0 pasti bisa dijalankan (walaupun nanti di uninstal lagi sqlite_netfx nya). Kemungkinan ada file yang harus di copy / diregistrasi tapi saya ga tahu file yang mana. Udah di cek registry juga ga ktemu-ktemu. Jadi Bingung😦 ..

        • July 25, 2013 at 9:08 am

          Kayaxnya bermasalah di librarynya om, coba coding ulang menggunakan library System.Data.SQLite.dll yg dari sample aplikasi sy.

          Aplikasi sy udah sy coba di komputer yg belum pernah diinstall Sqlite netfx20 tetap jalan

  62. MUNGALIM
    September 8, 2013 at 4:03 pm

    mas andmin minta batuan kenapa pas saya menampilkan table yang ada format tanggal nya di SQLite ada eror kaya gini (” String Was not recoginsed as a valid Datetime “)
    mohon bantuanya

    • September 9, 2013 at 3:41 pm

      Mana contoh kodenya ?

  1. September 27, 2012 at 10:01 am
Comments are closed.
%d bloggers like this: