tôi đang xài CSDL là mySQL và ngôn ngữ ASP để design web cho công ty.
hiện tại đang làm phần Sao Lưu CSDL, tôi muốn backup toàn bộ CSDL bao gồm cả structure và data ra một file, vì thế tôi đã xài sql cmd: SHOW CREATE ... để lấy thông tin... và dùng BinaryWrite để output... nhưng gặp phải vấn đề như thế này:
- output ra đc nhưng trong chuổi output có các ký tự đi liền nhau là 0A 00 00 mà dùng hàm replace thay cho nó thành "" hết mà không đc.
cụ thể, code:
Code:
Server.ScriptTimeout= 30000
Response.Buffer = True
Response.Clear
Response.AddHeader "Content-Disposition", "attachment; filename=backup.sql"
Response.ContentType = "text/html"
Response.Write vbCRLF & "DROP DATABASE IF EXISTS " & sqlDB & ";" & vbCRLF
Response.BinaryWrite cStr(sqlCon.Execute("SHOW CREATE DATABASE " & sqlDB)(1)) & ";" & vbCRLF
For nI=1 To nCount
selTbl= replaceChr(Request.Form("chkTbl" & nI))
If selTbl<>"" Then
Response.Write "DROP TABLE IF EXISTS " & selTbl & ";" & vbCRLF
Response.BinaryWrite Replace(cStr(sqlCon.Execute("SHOW CREATE TABLE " & selTbl)(1)), Chr(10) & Chr(32) & Chr(32), " ", 1, -1, 1) & ";"
End If
Next
Response.Flush
Response.Clear
- chuổi text thường không xuất được bằng Response.BinaryWrite và chuổi trả về từ truy vấn sql không xuất được bằng Response.Write (chắc kiểu binary... hix...)
Các bác xem giúp tui nhé...