﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-飞鸟JAVA-文章分类-VB</title><link>http://www.blogjava.net/yczz/category/19205.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 03:14:44 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 03:14:44 GMT</pubDate><ttl>60</ttl><item><title>VB实现SQL SERVER2000数据库备份还原</title><link>http://www.blogjava.net/yczz/articles/93658.html</link><dc:creator>飞鸟</dc:creator><author>飞鸟</author><pubDate>Sat, 13 Jan 2007 13:25:00 GMT</pubDate><guid>http://www.blogjava.net/yczz/articles/93658.html</guid><wfw:comment>http://www.blogjava.net/yczz/comments/93658.html</wfw:comment><comments>http://www.blogjava.net/yczz/articles/93658.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yczz/comments/commentRss/93658.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yczz/services/trackbacks/93658.html</trackback:ping><description><![CDATA[*********************************************************<br />'* 名称：BackupDatabase<br />'* 功能：备份数据库<br />'* 控件：一个文本框和两个按钮（备份到和确定）<br />'*********************************************************<br />Public Sub BackupDatabase()<br />Dim cn As New ADODB.Connection<br />Dim s_path, s_dataexport As String<br />s_path = App.Path<br />Me.MousePointer = 11   '设置鼠标指针形状<br />'student1是需要备份的数据库名称<br />s_dataexport = "backup database student1 to disk='" + CommonDialog1.FileName + "'"<br />cn.Open "driver={sql server};server=" &amp; d1 &amp; ";database=student1;persist security info=false; userid=sa"  '数据库连接字符串<br />'这里不需要连接master数据库，即可完成备份<br />cn.BeginTrans<br />cn.Execute s_dataexport<br />Err.Number = 0<br />If Err.Number = 0 Then<br />    cn.CommitTrans<br />    MsgBox "数据备份成功！", vbInformation, "提示"<br />    MsgBox "数据备份文件存放路径:" &amp; CommonDialog1.FileName, vbOKOnly, "提示"<br />    Unload Me<br />Else<br />    cn.RollbackTrans<br />    MsgBox "数据备份失败！请检查数据库是否正在打开！", vbCritical, "提示"<br />End If<br />cn.Close<br />Set cn = Nothing<br />Me.MousePointer = 1<br />End Sub<br /><br /><br /><br />'*********************************************************<br />'* 名称：RestoreDataBase<br />'* 功能：还原数据库<br />'* 控件：一个文本框和两个按钮（ 打开和确定）<br />'*********************************************************<br />Public Sub RestoreDataBase()<br />If Text1.Text = "" Then<br />    MsgBox "请选择要恢复的数据文件！", vbInformation, "提示"<br />    Exit Sub<br />Else<br />    ret = MsgBox("数据恢复操作将会覆盖以前的所有数据并且覆盖后无法恢复，您确定要进行恢复操作吗？", vbQuestion + vbOKCancel, "提示")<br />    If ret = vbOK Then<br />       Dim cn As New ADODB.Connection<br />       Dim sn As New ADODB.Recordset<br />       Dim s_restore As String<br />       Me.MousePointer = 11<br />       cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;server=" &amp; d1 &amp; ";Initial Catalog=master;Data Source=127.0.0.1;user id=sa;password=" &amp; d3 &amp; ""<br />       sn.Open "select  spid  from  sysprocesses  where  dbid=db_id('student1')", cn<br />        Do While Not sn.EOF<br />          cn.Execute "kill " &amp; sn("spid")<br />          sn.MoveNext<br />        Loop<br />        sn.Close<br />        s_restore = "restore database student1 from disk='" + Trim(Text1.Text) + "'  with REPLACE"<br />        cn.Execute s_restore<br />         'Debug.Print gs_conn_string<br />         '此时需要连接master数据库才能完成数据恢复操作<br />         '同上student1为需要恢复的数据库<br />        s_restore = "restore database student1 from disk='" + Trim(Text1.Text) + "'"<br />         'text1一个用于记录需要恢复文件的地址的textbox<br />        cn.Execute s_restore<br />        cn.BeginTrans<br />        If Err.Number = 0 Then<br />            cn.CommitTrans<br />            MsgBox "数据恢复成功！", vbInformation, "提示"<br />            Command1.Enabled = True<br />            Label1.Visible = False<br />        Else<br />            cn.RollbackTrans<br />            MsgBox "数据恢复失败！", vbCritical, "提示"<br />            Command1.Enabled = True<br />        End If<br />        cn.Close<br />        Set cn = Nothing<br />        Me.MousePointer = 1<br />    Else<br />        Exit Sub<br />    End If                      '''''''''''''''''''''''''''''''''''''''''<br />    On Error Resume Next<br />    Dim DBC As New DataBaseConnection<br />    If db.State = 1 Then<br />       db.Close<br />    End If<br />    db.ConnectionString = DBC.SqlConnectString(d1, d2, d3)<br />    rs.CursorType = adOpenDynamic<br />    rs.CursorLocation = adUseClient<br />    rs.LockType = adLockOptimistic<br />    db.CursorLocation = adUseClient<br />    db.Open<br />    Set cmd.ActiveConnection = db<br />    If Err.Number Then<br />       MsgBox Err.Description, 16 + vbOKOnly, Err.Number<br />       Exit Sub<br />    End If<br />    db.DefaultDatabase = "student1"<br />    If Err.Number Then<br />       MsgBox Err.Description, 16 + vbOKOnly, Err.Number<br />       Exit Sub<br />    End If<br />End If<br />End Sub                      '''''''''''''''''''''''''''''''''''''''''''''<img src ="http://www.blogjava.net/yczz/aggbug/93658.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yczz/" target="_blank">飞鸟</a> 2007-01-13 21:25 <a href="http://www.blogjava.net/yczz/articles/93658.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>