对sql_server7数据库备份时,总是备份到服务器,除非将本地某文件夹设为共享,通过网络邻居进行备份,有什么方法能在不设置共享的情况下备份到本地。
解决方案 »
- 自动化错误(错误440)[Microsoft][ODBC Microsoft Access Driver]
- vb 里面怎么做宠物之类的,简单的就可以哦!
- 为什么在VB中调用API函数,其中有些参数看不到它的定义?
- 用最后20分来BS下所有20分贴!
- *******最近非常的无聊,过来散点分******
- xiaoyaolz(逍遥浪子) 我结帖的时候出现500错误,无法把分放出去。
- smtp服务器验证已完成,可只有新浪的能发,网易,Tom都不行,看下列反馈
- Active EXE怎样做能像Active控件一样放到窗口中,急急急急急急急急急
- 关于用vb工具制作的安装盘的安装问题,请有经验的高手
- 与网蚁一样的右键添加怎么做?
- 数据库备份有点问题,请教各位大哥,急的
- 关于在 ACTIVEREPORT 中打印图片的问题
Sub backDataBase()
cn1.Execute "use master"
dlg.Filter = "(*.bak)|*.bak"
dlg.ShowOpen
MousePointer = 11
cn1.Execute "BACKUP DATABASE hetong TO DISK = '" & dlg.FileName & "'" '备份数据库
MousePointer = 0
Set cn1 = Nothing
'重新建立连接
Call dbint
Set cn1 = New ADODB.Connection
cn1.Open "Driver={SQL Server};Server=" & SQL_SRV & ";Uid=" & SA & ";Pwd=" & PA & ";Database=" & SJK & ""
End Sub
这样不行,这种方式默认备份到服务器,如果服务器有同名文件夹,则直接写入到服务器(而非本地机),如果没有,则报错。
If CN.State = adStateOpen Then CN.Close
CN.ConnectionTimeout = 10
connstr = "Driver={SQL Server};Server=" & LocalServer & ";UID=" & LocalUser & ";PWD=" & LocalPw & ";DATABASE=" & LocalDb
CN.Open connstr
Nowtime = Format(Now, "hh-mm-ss")
dd = str(Date)
riqi = dd + "-" + NowtimeSql = "BACKUP DATABASE tablename TO disk='D:\mssql7\BACKUP\tablename" & riqi & "' with noinit"
CN.Execute (Sql)
添加进度条ProgressBar1控件
引用Microsoft SQLDMO Object Library
'声明
Public WithEvents bkps As SQLDMO.Backup
'数据库备份操作
Private Sub Command3_Click()
Dim oSvr As SQLDMO.SQLServer
Set oSQLServer = CreateObject("SQLDMO.SQLServer")
oSQLServer.LoginSecure = False
oSQLServer.Connect ("(local)"), ("sa"), ("")'连接服务器
Screen.MousePointer = 11
Set bkps = CreateObject("SQLDMO.Backup")
bkps.Database = "db"'指定需备份的数据库
bkps.Action = 0
bkps.Files = "c:\backup\db.bak"'指定备份文件
bkps.Initialize = True
ProgressBar1.Value = 0
ProgressBar1.max = 100
Screen.MousePointer = 0
DoEvents
Err = 0
bkps.SQLBackup oSQLServer
Screen.MousePointer = 11
ProgressBar1.Value = 100
DoEvents
Set bkps = Nothing
Screen.MousePointer = 0
MsgBox "数据库备份完成"
End Sub
'显示进度
Private Sub bkps_PercentComplete(ByVal Message As String, ByVal Percent As Long)
ProgressBar1.Value = ProgressBar1.max * (Percent / 100)
End Sub
Option Explicit
'////////////////////////////////////////////////////////////////////////
'属性
Private mvarDBconn As Object '数据库连接
Private mvarDBname As String '数据库名
'////////////////////////////////////////////////////////////////////////Private ConnStr As String '数据库连接字串Public Function GetBakList(LogFile As String) As ObjectEnd FunctionPublic Property Let DBname(ByVal vData As String)
mvarDBname = vData
End PropertyPublic Property Get DBname() As String
DBname = mvarDBname
End PropertyPublic Property Let DBConn(ByVal vData As Object)
mvarDBconn = vData
End PropertyPublic Property Set DBConn(ByVal vData As Object)
Set mvarDBconn = vData
End PropertyPublic Property Get DBConn() As Object
Dim DB As ADODB.Connection
Dim TmpString1 As String
Dim TmpString2 As String If IsObject(mvarDBconn) Then
Set DBConn = mvarDBconn
Set DB = DBConn
ConnStr = DB.ConnectionString
TmpString1 = Mid(ConnStr, 1, InStr(ConnStr, "Catalog") + 6)
TmpString2 = Mid(ConnStr, InStr(ConnStr, "Catalog") + 7)
ConnStr = TmpString1 & "########" & TmpString2
Else
DBConn = mvarDBconn
End If
End PropertyPublic Function Restore(BakFilePath As String, DBConn As ADODB.Connection)
Dim Cmd As ADODB.Command
Dim BackName As String
Dim tmpConnStr As StringIf ConnStr = "" Or DBname = "" Then
MsgBox "给予参数不完整!"
Exit Function
End IfOn Error GoTo Ee
DBConn.Close
Set DBConn = New ADODB.Connection
tmpConnStr = Replace(ConnStr, "########", "master")
DBConn.ConnectionString = tmpConnStr
DBConn.OpenBackName = lvw.SelectedItem.Text
Mid(BackName, InStr(BackName, ":"), 1) = "#"
Mid(BackName, InStr(BackName, ":"), 1) = "#"
BackName = BackName & ".dat"
If Dir(App.Path & "\backup\" & BackName) = "" Then
MsgBox "该数据备份文件丢失!", 16
Exit Function
End IfSet Cmd = New ADODB.Command
Cmd.ActiveConnection = Conn
Cmd.CommandText = "RESTORE DATABASE pos FROM DISK = '" & BakFilePath & "'"
Cmd.CommandType = adCmdText
Cmd.ExecuteSet Cmd = NothingConn.Close
Set Conn = New ADODB.Connection
tmpConnStr = Replace(ConnStr, "########", DBname)
Conn.ConnectionString = tmpConnStr
Conn.OpenMsgBox "数据还原顺利完成!", 64
Exit FunctionEe:
MsgBox "数据还原出现错误!" & vbCrLf & vbCrLf & "原因有可能是应用程序还在访问数据库或者备份的数据文件已损坏!", 16
End FunctionPublic Sub CreateBak(LogFile As String, BakPath As String, Part As String)
Dim Cmd As ADODB.Command
Dim SQL As StringIf Dir(BakPath, vbDirectory) = "" Then
MkDir BakPath
End IfOpen BakPath & "\backuplist.list" For Append As #1
Write #1, Format(Date$, "yyyy-mm-dd") & " " & Format(Time$, "hh:mm:ss") & _
"/" & Part
Close #1Set Cmd = New ADODB.Command
Cmd.ActiveConnection = Conn
SQL = "BACKUP DATABASE ############ TO DISK='" & BakPath & "\" & _
Format(Date$, "yyyy-mm-dd") & " " & Format(Time$, "hh#mm#ss") & ".dat" & "'"
Cmd.CommandText = SQL
Cmd.CommandType = adCmdText
Cmd.ExecuteMsgBox "还原点创建完毕!", 64, "系统提示"End Sub
<%
Response.Buffer=true
Response.Clear'根据你的情况修改用户名和密码
constr="Provider=SQLOLEDB.1;Persist Security Info=True;User ID=用户名;Password=密码;Data Source=(local)"set conn=server.createobject("adodb.connection")
conn.open constr
bkfname=server.mappath("数据库备份.bak")
sqlstr="backup database pubs to disk='"+bkfname+"' with init"
conn.execute sqlstr
conn.closeset fn=server.createobject("adodb.stream")
fn.mode=3
fn.type=1
fn.open
fn.LoadFromFile bkfname
Response.ContentType="application/octet-stream"
Response.BinaryWrite fn.read
fn.close
%>