如果数据库处于打开状态时是不能用文件的简单拷贝的方式进行备份的。当数据库打开时是不允许用filecopy 如果你想可以用 Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long或用这个试试? Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
'断开与数据库sqldb的所有连接 Dim cn As New ADODB.Connection, sn As New ADODB.Recordset cn.ConnectionString = "provider=SQLOLEDB;server=(local);uid=sa;pwd=;database=master" cn.CursorLocation = adUseClient cn.Open sn.Open "select spid from sysprocesses where dbid=db_id('sqldb')", cn Do While Not sn.EOF cn.Execute "kill " & sn("spid") sn.MoveNext Loop sn.Close Set cn = Nothing
我也正好需要这样的东东呢,也就是关闭所有与数据库操作的对象
如果你想可以用
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long或用这个试试?
Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
'断开与数据库sqldb的所有连接
Dim cn As New ADODB.Connection, sn As New ADODB.Recordset
cn.ConnectionString = "provider=SQLOLEDB;server=(local);uid=sa;pwd=;database=master"
cn.CursorLocation = adUseClient
cn.Open
sn.Open "select spid from sysprocesses where dbid=db_id('sqldb')", cn
Do While Not sn.EOF
cn.Execute "kill " & sn("spid")
sn.MoveNext
Loop
sn.Close
Set cn = Nothing