数据库备份怎么做?
我写了一个小程序,有个功能是备份数据库,说白了也就是把数据库文件拷贝到另一个地方保存起来,一开始我是这样写的:
Dim Yfile As String, Bfile As String
Yfile = App.Path + "\Mydata.mdb"
Bfile = App.Path + "\MBak\Mydata.mdb"
FileCopy Yfile, Bfile
可程序老提示拒绝的权限,后来才知道是因为数据库正在使用中,没有关闭,请问怎么样才能关闭数据库,并把这个拷贝功能顺利完成呢?还有没有更好的数据库备份的方法?
问题点数:0、回复次数:6Top
1 楼kissoflife(明月高楼休独倚,酒入愁肠,化作相思泪!)回复于 2004-05-04 12:54:46 得分 0
如果你用的是全局或者模块级连接,在备份前关闭它们即可:
con.Close
set con=nothing
在备份完之后,重新连接。
另外,直接用app.path是不安全的,如果程序在根目录下就会出问题。
Private Sub Command1_Click()
Dim strCurPath As String
If Right(App.Path, 1) <> "\" Then
strCurPath = App.Path & "\"
Else
strCurPath = App.Path
End If
MsgBox strCurPath
End SubTop
2 楼tangxiaosan001(阿三)回复于 2004-05-04 13:11:08 得分 0
不如用backup咯。这个备份可以,但是还原的时候数据库要是关闭的。Top
3 楼mingtian2008(明天)回复于 2004-05-04 13:16:01 得分 0
upTop
4 楼xuminghua(企鹅)回复于 2004-05-04 15:24:57 得分 0
我写了DLL可以关闭任何程序中的连接 而且在这个DLL中还有好多别的功能 要就找我 XUMINGHUA3328·SOHU。COMTop
5 楼douhapy(双喜)回复于 2004-05-04 15:34:35 得分 0
在程序中将你使用到的连接关掉就可以了.
比如:
你使用了con as connection,则需再备份时set conn=nothing;
你使用了rs as Recordset,则需再备份时set rs = nothing;Top
6 楼sdmyhy(非典型流氓)回复于 2004-05-05 10:07:57 得分 0
con.Close
set con=nothing
请问以上代码是什么意思?我好像没用过啊?
我在程序中是这样写的
data1.databasename= "d:\mydata.mdb"
data1.recordsource= "aaa"
我在另一个简单的程序中试验了一下用一下代码关闭的
data1.databasename=""
data1.refresh
这样就可以了,可是回到我的代码中,老是提示“对象变量或with块未设置”,我看了看出错的代码实在另一个窗体中
If Form1.ListView1.ListItems.Count > 0 Then
Dim i, Count As Integer
Count = Form1.ListView1.SelectedItem.Index
Form1.Data3.Recordset.MoveFirst
i = 1
Do While i < Count
Form1.Data3.Recordset.MoveNext
i = i + 1
Loop
Form1.ListViewItem = Count
Text1.Text = Form1.Data3.Recordset.Fields("jfdw")
Text2.Text = Form1.Data3.Recordset.Fields("jfje")
Yje = Text2.Text
Text5.Text = Form1.Data3.Recordset.Fields("pjbh")
Text4.Text = Form1.Data3.Recordset.Fields("bz")
If TxN = "" Then
Text3.Text = "系统"
Else
Text3.Text = TxN
End If
End If
我在程序中用了十几个data控件,我一一把他们的databasename属性都清空了,怎么还不行啊?快帮帮我吧,我的软件就剩下这么一个问题没有解决了,不能让我功败垂成啊。望朋友们教教我!Top




