Function yedek_al(dosya As String) On Error Resume Next Dim BaseMakeBackup As New ADODB.Recordset Dim BaseMakeBackupCreate As New ADODB.Recordset Dim DataBaseTables As New ADODB.Recordset Dim prevIndex As String Dim f As Integer Dim m As Integer Dim d As Integer Dim ArrayCountCamp(99) Dim ArrayCountValor(99) Dim LiniaString As String Dim CheckPrimLinia As String Dim CheckKeyLinia As String Dim LiniaStringCreate As String Dim Nom_Taula As String Dim DadesString As String Dim DadesFile As Integer DadesFile = FreeFile Open dosya For Output As DadesFile Print #DadesFile, "" Print #DadesFile, "# Yedek Alınan Tarih: " & Date Print #DadesFile, "# Yedek Alınan Saat : " & Time Print #DadesFile, "# Alanay Bilgisayar MySQL Yedek Programı" Print #DadesFile, "# By Mehmet USLU" Print #DadesFile, "# mehmet@alanaybilgisayar.com" Print #DadesFile, "#" Print #DadesFile, "" Nom_Taula = "" With DataBaseTables .Open "SHOW TABLE STATUS", conn Do While Not .EOF Nom_Taula = .Fields.Item("Name").Value CheckPrimLinia = "" With BaseMakeBackupCreate .Open "SHOW FIELDS FROM " & Nom_Taula, conn Print #DadesFile, "" Print #DadesFile, "#" Print #DadesFile, "# Estructura de la taula " & Nom_Taula & "" Print #DadesFile, "#" Print #DadesFile, "" LiniaStringCreate = "CREATE TABLE If Not EXISTS " & Nom_Taula & " (" Print #DadesFile, LiniaStringCreate Do While Not .EOF LiniaStringCreate = " " & .Fields.Item(0).Value & " " & .Fields.Item(1).Value If .Fields.Item(2).Value <> "YES" Then LiniaStringCreate = LiniaStringCreate & " Not NULL" End If If .Fields.Item(3).Value = "PRI" Then CheckPrimLinia = " PRIMARY KEY (" & .Fields.Item(0).Value & ")" End If If .Fields.Item(3).Value = "MUL" Then CheckKeyLinia = "true" End If If .Fields.Item(4).Value <> "" Then LiniaStringCreate = LiniaStringCreate & " default '" & .Fields.Item(4).Value & "'" End If If .Fields.Item(5).Value = "auto_increment" Then LiniaStringCreate = LiniaStringCreate & " auto_increment" End If .MoveNext If .EOF = True Then If CheckPrimLinia <> "" Then LiniaStringCreate = LiniaStringCreate & "," Else If CheckKeyLinia <> "" Then LiniaStringCreate = LiniaStringCreate & "," End If End If Else LiniaStringCreate = LiniaStringCreate & "," End If Print #DadesFile, LiniaStringCreate Loop If CheckKeyLinia <> "" Then If CheckPrimLinia <> "" Then CheckPrimLinia = CheckPrimLinia & "," End If If CheckPrimLinia <> "" Then Print #DadesFile, CheckPrimLinia .Close .Open "SHOW KEYS FROM " & Nom_Taula, conn f = 0 prevIndex = "" CheckKeyLinia = "" Do While Not .EOF If .Fields.Item("Key_name").Value <> prevIndex Then ArrayCountValor(f) = .Fields.Item("Column_name").Value ArrayCountCamp(f) = .Fields.Item("Key_name").Value Else ArrayCountValor(f) = ArrayCountValor(f) & "," & .Fields.Item("Column_name").Value End If prevIndex = .Fields.Item("Key_name").Value .MoveNext If .EOF = False Then If .Fields.Item("Key_name").Value <> prevIndex Then f = f + 1 End If Loop For m = 0 To f If Not ArrayCountCamp(m) = "PRIMARY" Then If m < f Then Print #DadesFile, " KEY " & ArrayCountCamp(m) & " (" & ArrayCountValor(m) & ")," Else Print #DadesFile, " KEY " & ArrayCountCamp(m) & " (" & ArrayCountValor(m) & ")" End If End If Next m .Close LiniaStringCreate = ") TYPE=MyISAM;" Print #DadesFile, LiniaStringCreate End With With BaseMakeBackup .Open "SELECT * FROM " & Nom_Taula & "", conn Print #DadesFile, "" Print #DadesFile, "#" Print #DadesFile, "# Dades de la Taula " & Nom_Taula & "" Print #DadesFile, "#" Print #DadesFile, "" Do While Not .EOF LiniaString = "INSERT INTO " & Nom_Taula & " VALUES (" For d = 0 To .Fields.Count - 1 DadesString = .Fields.Item(d).Value If .Fields.Item(d).Type = 131 Then DadesString = Replace(Format$(DadesString, "0.00"), ",", ".") End If DadesString = Replace(DadesString, "\", "\\") DadesString = Replace(DadesString, "'", "\'") DadesString = Replace(DadesString, Chr(13), "\r\n") LiniaString = LiniaString & "'" & DadesString & "', " Next d LiniaString = Left(LiniaString, Len(LiniaString) - 2) & ");" Print #DadesFile, LiniaString .MoveNext Loop .Close End With .MoveNext Print #DadesFile, "#--------------------------------------------" Loop .Close End With Close End Function Function geri_yukle(dosya As String) Dim str, crear, inserir, sTmp As String Dim numlinia As Integer crear = "CREATE TABLE If Not EXISTS " inserir = "INSERT INTO " Dim DadesFile As Integer DadesFile = FreeFile ' On Error GoTo errors Open App.Path & "\backupdata\" & dosya For Input As #DadesFile Do While Not EOF(DadesFile) Line Input #DadesFile, str If Left(str, Len(crear)) = crear Then numlinia = DadesFile + 1 While Mid(str, Len(str), 1) <> ";" sTmp = str Line Input #DadesFile, str str = Right(str, Len(str) - 2) sTmp = sTmp & str str = sTmp Wend str = Mid(str, 1, Len(str) - 12) str = str & ");" conn.Execute str End If If Left(str, Len(inserir)) = inserir Then On Error Resume Next 'if error exists is because there's an existing data so the code pas To a next line conn.Execute str End If Loop Close #DadesFile MsgBox "Veritabanı Başarıyla Yüklendi.", , "Alanay Bilgisayar" Exit Function errors: MsgBox "ERROR:" & Err.Number & vbNewLine & Err.Description & vbNewLine Err.Clear End Function