โปรแกรมมั่ว พ่อลูกอ่อน
<VB.Net>โค้ด Backup SQLServer

โดยปกติแล้วการ Backup หรือ Restore รวมทั้งการ Maintenance RDBMS อย่าง SQLServer หรือ Oracle ควรให้ DBA ทำที่ตัว RDBMS เอง แต่ในบางกรณีเราอาจอยากให้ admin ของ application ที่เราพัฒนาขึ้นสามารถ backup/restore database จากหน้า form ที่เราสร้างขึ้น


กรณีนี้เราสามารถใช้คำสั่ง T-SQL (Transact SQL) ได้ครับ เรามาดู syntax ของคำสั่งก่อนครับ


BACKUP DATABASE { database_name | @database_name_var }
TO < backup_device > [ ,...n ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [ , ] DESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] DIFFERENTIAL ]
[ [ , ] EXPIREDATE = { date | @date_var }
| RETAINDAYS = { days | @days_var } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] FORMAT | NOFORMAT ]
[ [ , ] { INIT | NOINIT } ]
[ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
[ [ , ] { NOSKIP | SKIP } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]


สำหรับรายละเอียดลองดูใน Online Book ของ SQLServer นะครับ


สมมติว่าเราต้องการ backup database ลงใน folder ที่ต้องการ คำสั่งจะประมาณนี้ครับ


BACKUP DATABASE Northwind
TO DISK 'C:\Northwind.bak'
WITH FORMAT, NAME = 'NorthwindBackup'


คราวนี้เราลองมาดูการเขียนโปรแกรมเลยครับ สมมติว่า ผมสร้าง Form มา 1 ฟอร์ม สร้าง ปุ่มชื่อ btnBackup ขึ้นมา 1 ปุ่ม แล้วก็สร้าง sqlConnection ชื่อ sqlConnection1 สำหรับ Form นี้ด้วยครับ


ทีนี้ก็มาดูโค้ด


Private Sub btnBack_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBackup.Click
Dim strSQL As String
Dim
strCon As String
strCon = "Data Source=NITHI;Initial Catalog=master;Integrated Security=True"
Dim cmdBackup As SqlClient.SqlCommand = New SqlClient.SqlCommand
SqlConnection1.ConnectionString = strCon
SqlConnection1()
Cursor = Cursors.WaitCursor
Try
    strSQL = "BACKUP DATABASE Northwind "
    strSQL &= "TO DISK = 'C:\mybackup.bak' "
    strSQL &= "WITH FORMAT, "
    strSQL &= "NAME = 'myBackup'"
cmdBackup.Connection = SqlConnection1
   cmdBackup.CommandText = strSQL
   cmdBackup.ExecuteNonQuery()
    MsgBox("finish")
Catch ex As Exception
    MsgBox("Error")
End Try

Cursor = Cursors.Arrow
SqlConnection1.Close()
cmdBackup.Dispose()
cmdBackup = Nothing

End Sub

ลองรันดูครับ


เมื่อรันเสร็จ จะมี message box บอกว่า Finish แล้วไปดูที่ C: จะพบว่ามีไฟล์ mybackup.bak ก็เป็นอันเสร็จเรียบร้อยครับ

ถ้าเราตัองการเก็บไฟล์ backup เป็นหลายๆไฟล์ เราก็อาจจะเขียนโปรแกรมให้สร้างชื่อตามวันที่ก็ได้ครับ เช่น myBackup20070311.bak เป็นต้น



Create Date : 11 ตุลาคม 2550
Last Update : 11 ตุลาคม 2550 23:51:53 น. 2 comments
Counter : 1468 Pageviews.

 
ลงเขียนไปแล้วอ่าครับ ติดตรง บรรทัดนี้ SqlConnection1() และขึ้น error ว่าexpression is not a method


โดย: มือใหม่ IP: 202.29.52.220 วันที่: 17 สิงหาคม 2554 เวลา:22:55:36 น.  

 
ลบไปเลยครับ เปลี่ยนเป็น SqlConnection1.open


โดย: TEEAR IP: 183.88.42.247 วันที่: 28 กันยายน 2556 เวลา:10:49:09 น.  

ชื่อ :
Comment :
  *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 

นายจวบ
Location :
กรุงเทพฯ Thailand

[ดู Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed

ผู้ติดตามบล็อก : 2 คน [?]




โปรแกรมมั่ว พ่อลูกอ่อน
Group Blog
 
<<
ตุลาคม 2550
 123456
78910111213
14151617181920
21222324252627
28293031 
 
11 ตุลาคม 2550
 
All Blogs
 
Friends' blogs
[Add นายจวบ's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.