Backup Database MySQL Server Tanpa mysqldump dengan VB6
https://carakuvb6.blogspot.com/2018/04/backup-database-mysql-server-tanpa-mysqldump-dengan-vb6.html
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
Perhatian !!
- Berkomentarlah dengan menggunakan bahasa yang baik dan sopan dan sesuai topik pembahasan
- Dilarang menjadikan referensi artikel web ini tanpa menyertakan sumbernya