在VB.NET中应用SQLDMO
来源:互联网 发布:深圳单片机培训 编辑:程序博客网 时间:2024/05/16 06:54
SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象)封装 Microsoft SQL Server 2000 数据库中的对象。SQL-DMO 允许用支持自动化或 COM 的语言编写应用程序,以管理 SQL Server 安装的所有部分。SQL-DMO 是 SQL Server 2000 中的 SQL Server 企业管理器所使用的应用程序接口 (API);因此使用 SQL-DMO 的应用程序可以执行 SQL Server 企业管理器执行的所有功能。
SQL-DMO 用于必须包含 SQL Server 管理的任何自动化或 COM 应用程序,例如:
1. 封装 SQL Server 作为自己的数据存储并想尽量减少用户的 SQL Server 管理任务的应用程序。
2. 在程序本身并入了专门的管理逻辑的应用程序。
3. 想在自己的用户界面中集成 SQL Server 管理任务的应用程序。
SQLDMO对象来自SQLDMO.dll,SQLDMO.dll是随SQL Server2000一起发布的。SQLDMO.dll自身是一个COM对象,因此,在你的.NET项目里必须先引用它。
得到网络中的SQL服务器的列表:
'得到SQL服务器的列表
'必须安装SQL SERVER 2000 SP2 及以上版本
Dim I As Short
Dim sqlApp As New SQLDMO.Application()
Dim ServerName As SQLDMO.NameList
ServerName = sqlApp.ListAvailableSQLServers
For i = 1 To ServerName.Count
cbServer.Items.Add(ServerName.Item(i))
Next
'必须安装SQL SERVER 2000 SP2 及以上版本
Dim I As Short
Dim sqlApp As New SQLDMO.Application()
Dim ServerName As SQLDMO.NameList
ServerName = sqlApp.ListAvailableSQLServers
For i = 1 To ServerName.Count
cbServer.Items.Add(ServerName.Item(i))
Next
得到指定SQL服务器所有数据库的列表:
'得到指定SQL服务器所有数据库的列表
Dim sqlApp As New SQLDMO.Application()
Dim oServer As New SQLDMO.SQLServer()
oServer.Connect("(local)", "sa", "sa")
cboDatabase.Items.Clear()
Dim db As SQLDMO.Database
For Each db In oServer.Databases
Me.cboDatabase.Items.Add(db.Name)
Next
Dim sqlApp As New SQLDMO.Application()
Dim oServer As New SQLDMO.SQLServer()
oServer.Connect("(local)", "sa", "sa")
cboDatabase.Items.Clear()
Dim db As SQLDMO.Database
For Each db In oServer.Databases
Me.cboDatabase.Items.Add(db.Name)
Next
得到所有的表、视图、存储过程:
Dim I As Short
Dim oServer As New SQLDMO.SQLServer()
oServer.Connect("(local)", "sa", "sa")
Dim db As New SQLDMO.Database()
For I = 1 To oServer.Databases.Count
If oServer.Databases.Item(I, "dbo").Name = "Northwind" Then Exit For
Next
If I > oServer.Databases.Count Then Exit Sub
db = oServer.Databases.Item(I, "dbo")
ListBox1.Items.Clear()
'得到所有的存储过程
For I = 1 To db.StoredProcedures.Count
ListBox1.Items.Add(db.StoredProcedures.Item(I, "dbo").Name)
Next
'得到所有的表
For I = 1 To db.Tables.Count
ListBox1.Items.Add(db.Tables.Item(I, "dbo").Name)
Next
' 得到所有的视图
For I = 1 To db.Views.Count
ListBox1.Items.Add(db.Views.Item(I, "dbo").Name)
Next
Dim oServer As New SQLDMO.SQLServer()
oServer.Connect("(local)", "sa", "sa")
Dim db As New SQLDMO.Database()
For I = 1 To oServer.Databases.Count
If oServer.Databases.Item(I, "dbo").Name = "Northwind" Then Exit For
Next
If I > oServer.Databases.Count Then Exit Sub
db = oServer.Databases.Item(I, "dbo")
ListBox1.Items.Clear()
'得到所有的存储过程
For I = 1 To db.StoredProcedures.Count
ListBox1.Items.Add(db.StoredProcedures.Item(I, "dbo").Name)
Next
'得到所有的表
For I = 1 To db.Tables.Count
ListBox1.Items.Add(db.Tables.Item(I, "dbo").Name)
Next
' 得到所有的视图
For I = 1 To db.Views.Count
ListBox1.Items.Add(db.Views.Item(I, "dbo").Name)
Next
利用SQLDMO实现带进度条的数据库备份:
'添加进度条ProgressBar1控件
'引用Microsoft SQLDMO Object Library
'声明
Public WithEvents bkps As SQLDMO.Backup
'数据库备份操作
Private Sub btnBackUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBackUp.Click
Dim oSQLServer As New SQLDMO.SQLServer()
oSQLServer.LoginSecure = False
oSQLServer.Connect("(local)", "sa", "sa") '连接服务器
Me.Cursor = Windows.Forms.Cursors.WaitCursor
bkps = CreateObject("SQLDMO.Backup")
bkps.Database = "Northwind" '指定需备份的数据库
bkps.Action = 0
bkps.Files = "f:Northwind.bak" '指定备份文件
bkps.Initialize = True
ProgressBar1.Value = 0
ProgressBar1.Maximum = 100
Me.Cursor = Windows.Forms.Cursors.Default()
Application.DoEvents()
Dim mouseCur As Cursor
Me.Cursor = Windows.Forms.Cursors.WaitCursor
bkps.SQLBackup(oSQLServer)
ProgressBar1.Value = 100
Application.DoEvents()
bkps = Nothing
Me.Cursor = Windows.Forms.Cursors.Default()
MsgBox("数据库备份完成", MsgBoxStyle.Information, "系统消息")
End Sub
'显示进度
Private Sub bkps_PercentComplete(ByVal Message As String, ByVal Percent As Integer) Handles bkps.PercentComplete
ProgressBar1.Value = ProgressBar1.Maximum * (Percent / 100)
End Sub
'引用Microsoft SQLDMO Object Library
'声明
Public WithEvents bkps As SQLDMO.Backup
'数据库备份操作
Private Sub btnBackUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBackUp.Click
Dim oSQLServer As New SQLDMO.SQLServer()
oSQLServer.LoginSecure = False
oSQLServer.Connect("(local)", "sa", "sa") '连接服务器
Me.Cursor = Windows.Forms.Cursors.WaitCursor
bkps = CreateObject("SQLDMO.Backup")
bkps.Database = "Northwind" '指定需备份的数据库
bkps.Action = 0
bkps.Files = "f:Northwind.bak" '指定备份文件
bkps.Initialize = True
ProgressBar1.Value = 0
ProgressBar1.Maximum = 100
Me.Cursor = Windows.Forms.Cursors.Default()
Application.DoEvents()
Dim mouseCur As Cursor
Me.Cursor = Windows.Forms.Cursors.WaitCursor
bkps.SQLBackup(oSQLServer)
ProgressBar1.Value = 100
Application.DoEvents()
bkps = Nothing
Me.Cursor = Windows.Forms.Cursors.Default()
MsgBox("数据库备份完成", MsgBoxStyle.Information, "系统消息")
End Sub
'显示进度
Private Sub bkps_PercentComplete(ByVal Message As String, ByVal Percent As Integer) Handles bkps.PercentComplete
ProgressBar1.Value = ProgressBar1.Maximum * (Percent / 100)
End Sub
- 在VB.NET中应用SQLDMO
- 在VB.NET中应用SQLDMO
- 在VB.NET中应用SQLDMO
- 在VB.NET中应用SQLDMO
- 在VB.NET中应用SQLDMO
- 在VB.NET中应用SQLDMO
- 在VB.NET中应用SQLDMO
- 教你如何在VB.NET中应用SQLDMO对象
- 在.NET中应用SQLDMO
- 在VB.NET中应用SQLDMO http://writeblog.csdn.net/ArticleEdit.aspx
- SQLDMO在VB中的应用
- SQLDMO在VB中的应用
- 在VB.NET中应用Agent技术
- 在vb.net中应用OO4O
- 在中使用SQLDMO
- 一个关于在VB.NET中应用超级解霸的问题
- 在VB.NET中应用SMTP和POP3 服务
- vb.net中应用 ArrayList
- FIREBIRD浅历
- 程序員如何創業?
- Flex 常用语句
- E文积累_20080221_this is not how it looks
- 在LINUX下安装postgres数据库
- 在VB.NET中应用SQLDMO
- 在Netbeans下开发Jboss-seam
- OpenSolaris upgrade -- BFU
- InstallShield简明教程之集成开发环境
- 批量修改vss的工作路径
- GPRS 地图瓶颈
- .net对于字符串的内存分配
- A little C# fun with Fibonacci
- vs2003升级到vs2005线程对窗体控件引发的错误