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服务器所有数据库的列表:
'得到指定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 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
利用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
新闻热点
疑难解答
图片精选