Backup Database MySQL Server Tanpa mysqldump dengan VB6

Pada pembahasan sebelumnya telah admin share Cara Backup Database MySQL (mysqldump) mengenai cara backup database MySQL Server menggunakan Ms. Visual Basic 6.0 (VB6) dan mysqdump.exe, untuk kali ini sedikit berbeda yaitu Backup Database MySQL Server tanpa menggunakan fasilitas dari file mysqldump.exe artinya dalam proses backup database MySQL Server yaitu membackup database ke file eksternal yang berekstensi *.sql dengan beserta perintah-perintah querynya seperti create database, create table, insert into dan lain-lain.

Bisa dikatakan dalam source code Ms. Visual Basic 6.0 (VB6) kali ini menggunakan metode yang sama dengan file Mysqldump.exe. Langsung saja buka Ms. Visual Basic 6.0 (VB6) - StandarEXE - Form kemudian selanjutnya buat juga 2 buah module sebagai deklarasi variabel-variabel koneksi ke database mysql server dan variabel-variabel yang lainnya. OBDC driver pada sourcode ini admin menggunakan MySQL ODBC 5.3 ANSI Driver.

Copykan coding Visual Basic 6.0 (VB6) dibawah ini pada modul yang pertama
Const MSG_01 = "Dian Rohman "          'created by
Const MSG_02 = "Nama Database: "     'database name
Const MSG_03 = "Tanggal & Waktu: "            'Data and time
Const MSG_04 = "DD/MM/YY HH:MM:SS "  'Your prefered format to display dates
Const MSG_05 = "DBMS: MySQL v "
Const MSG_06 = "Struktur tabel "      'Table structure
Const MSG_07 = "Data Tabel "             'Table data
Const MSG_08 = "Selesai Backup: "           'End of backup
Public Sub BackupDatabase(ByVal strFileName As String, cnn As ADODB.Connection)
    On Error Resume Next
    Dim rss As ADODB.Recordset
    Dim rssAux As ADODB.Recordset
    Dim x As Long, i As Integer
    Dim strTableName As String
    Dim strCurLine As String
    Dim strBuffer As String
    Dim strDBName As String
    x = FreeFile
    Open strFileName For Output As x
    
    Print #x, ""
    Print #x, "#"
    
    Print #x, "# " & MSG_01 & App.Title & " v" & App.Major & "." & App.Minor & "." & App.Revision
    
    'Mencari nama database
    'ada modifikasi sedikit dari aslinya...
    strDBName = "dbapotek"
    strDBName = Left(strDBName, InStr(strDBName, ";") - 1)
    Print #x, "# " & MSG_02 & strDBName
    
    Set rss = New ADODB.Recordset
    Set rssAux = New ADODB.Recordset
    
    'Mencari tipe versi MYSQL
    Print #x, "# " & MSG_03 & Format(Now, MSG_04)
    rss.Open "show variables like 'version';", cnn
    If Not rss.EOF Then
        Print #x, "# " & MSG_05 & rss.Fields(1)
    End If
    rss.Close
    
    'Mencegah kesalahan dari kunci tamu pada saat proses pengembalian data
    Print #x, "#"
    Print #x, ""
    Print #x, "SET FOREIGN_KEY_CHECKS=0;"
    Print #x, ""
    Print #x, "DROP DATABASE IF EXISTS `" & strDBName & "`;"
    Print #x, "CREATE DATABASE `" & strDBName & "`;"
    Print #x, "USE `" & strDBName & "`;"
    
    strTableName = ""

    With rss
        .Open "SHOW TABLE STATUS", cnn

        'Untuk tiap tabel...
        Do While Not .EOF
            strTableName = .Fields.Item("Name").Value
            
            With rssAux
                'Struktur tabel
                .Open "SHOW CREATE TABLE " & strTableName, cnn
                
                Print #x, ""
                Print #x, "#"
                Print #x, "# " & MSG_06 & strTableName & ""
                Print #x, "#"
                Print #x, .Fields.Item(1).Value & ";"
                .Close
                
            End With

           
            With rssAux
                .Open "SELECT * FROM " & strTableName & "", cnn
                Print #x, ""
                Print #x, "#"
                Print #x, "# " & MSG_07 & strTableName & ""
                Print #x, "#"
                Print #x, "lock tables `" & strTableName & "` write;"

                If Not .EOF Then
                    Print #x, "INSERT INTO `" & strTableName & "` VALUES "
                    
                    Do While Not .EOF
                    
                        
                        strCurLine = ""
                        For i = 0 To .Fields.Count - 1
                            strBuffer = .Fields.Item(i).Value
                            
                            If .Fields.Item(i).Type = 131 Then
                                strBuffer = Replace(Format(strBuffer, "0.00"), ",", ".")
                            End If
                            
                            
                            strBuffer = Replace(strBuffer, "\", "\\")
                            strBuffer = Replace(strBuffer, "'", "\'")
                            strBuffer = Replace(strBuffer, Chr(10), "")
                            strBuffer = Replace(strBuffer, Chr(13), "\r\n")
                            
                            If strCurLine <> "" Then
                                strCurLine = strCurLine & ", "
                            End If
                            strCurLine = strCurLine & "'" & strBuffer & "'"
                        Next i
                        .MoveNext
                        
                        strCurLine = "(" & strCurLine & ")"
                        If .EOF Then
                            Print #x, strCurLine & ";"
                        Else
                            Print #x, strCurLine & ","
                        End If
                    Loop
                    
                End If
                
                .Close
            End With
            
            Print #x, "unlock tables;"
            Print #x, "#--------------------------------------------"
            
            .MoveNext
        Loop
        
        'Atur database untuk dikembalikan menjadi semula...
        Print #x, ""
        Print #x, "SET FOREIGN_KEY_CHECKS=1;"
        Print #x, ""
        Print #x, "# " & MSG_08 & Format(Now, MSG_04)
        
        .Close
    End With
    
    Close #x
    MsgBox "Data telah berhasil terbackup !", vbInformation, "Informasi"
End Sub
Untuk modul yang selanjutnya berisi coding variabel koneksi ke database mysqlserver untuk syntaxnya seperti dibawah ini
Public CN As New ADODB.Connection
Sub Koneksi()
Dim NServer, NUser, NPass, NDatabase As String
NServer = "192.168.1.152"
NUser = "root"
NPass = ""
NDatabase = "dbapotek"
On Error GoTo ErrKoneksi

CN.CommandTimeout = 0
If CN.State Then
   CN.Close
   CN.CursorLocation = adUseClient
 CN.ConnectionString = "DRIVER={MySQL ODBC 5.3 ANSI Driver};" & _
  "SERVER=" & NServer & " ;Port=3306;DATABASE=" & NDatabase & ";" & _
"UID=" & NUser & " ;PWD=" & NPass & ";OPTION=3"
                         CN.Open
Else
CN.CursorLocation = adUseClient
CN.ConnectionString = "DRIVER={MySQL ODBC 5.3 ANSI Driver};" & _
"SERVER=" & NServer & " ;Port=3306;DATABASE=" & NDatabase & ";" & _
"UID=" & NUser & " ;PWD=" & NPass & ";OPTION=3"
                         CN.Open
End If
Exit Sub

ErrKoneksi:
MsgBox "Koneksi database Error.. " & vbCrLf & Err.Description & Err.Number, vbCritical, "Error Koneksi Database"
Exit Sub
End Sub

Panggil sub koneksi pada prosedur form_load dan tambahkan juga 1 buah commandbutton, double klik dan tambahkan syntak dibawah ini
BackupDatabase App.Path & "\dbapotek.sql", CN

Setelah selesai coba save dan Run (F5) klik pada CommandButton dan lihat hasil backup database berupa file berekstensi sql didalam folder tersebut dan untuk sourcodenya bisa didownload pada LINK DOWNLOAD

Related

Visual Basic Classic 7619037037164046654

Post a Comment

Perhatian !!
- Berkomentarlah dengan menggunakan bahasa yang baik dan sopan dan sesuai topik pembahasan
- Dilarang menjadikan referensi artikel web ini tanpa menyertakan sumbernya

emo-but-icon

Terbaru

Random Artikel

Memuat...

Contact Us

Name

Email *

Message *

item