关 SQLDMO 组件在一些用法!

 
今天做一个恢复数据库的程序时,突然想起 SqlServer 有一个功能强大的组件 sqldmo ,与是查阅了一下它的相关帮助,发现它刚好能够满足我的需求:
下面是我的程序的部代码,在这里共享组大家分享。

以下代码在 VB6中文版中编译通过!

启动数据服务:
Public Sub Start_server()
    Dim svr As New SQLDMO.sqlServer
    On Error GoTo errHwnd
    svr.Start False, MyServer
    svr.Close
    Exit Sub
errHwnd:
    If Err.Number <> -2147023840 Then
        MsgBox Err.Number & vbCrLf & Err.Description, vbExclamation, "错误"
    End If
End Sub

联接并验证密码:
Public Function ConnServer(ByVal sqlServer As String, ByVal uid As String, ByVal pwd As String) As Boolean
    Dim st As SQLDMO_SVCSTATUS_TYPE
    Dim svr As New SQLDMO.sqlServer
    On Error GoTo errHwnd
    svr.LoginTimeout = 10
    svr.Connect sqlServer, uid, pwd
    ConnServer = True
    Exit Function
errHwnd:
    If Err.Number = -2147203048 Then
        MsgBox "登录失败密码不正确,请重新输入!", vbInformation, "提示"
    Else
        Resume Next
    End If
End Function

恢复数据库时如果要重新部署数据库特理文件位置需注意设置
恢复数据库:
Public WithEvents ores As SQLDMO.Restore                '声明事件注意此行放在过程调用之前
Private Sub RestoreData(ByVal dataFile As String)
    On Error GoTo errHwd
    Dim oSql As SQLDMO.sqlServer
    Set ores = New SQLDMO.Restore
    Set oSql = New SQLDMO.sqlServer
    oSql.LoginSecure = False
    oSql.Connect ServerName, sqlUser, sqlPwd            '联接数据服务
    ores.Action = SQLDMORestore_Database                '恢复类型数据库
    ores.Database = "Rcrs"                              '数据库名称
    ores.ReplaceDatabase = True                         '替代现有数据库如不存则创建它
    ores.Files = dataFile                               '备份文件名,如果是多个设备上的需使用.Devices属性
    ores.DatabaseFiles = dataFile                  '数据库文件此参数必须设置否则无法使用 relocatefiles
    ores.FileNumber = 1                                 '文件在设备上的ID号如果你只有一个文件就是1
    'RelocateFiles 重新部署数据库逻辑名'"[逻辑名],[物理文件名地址]"
    ores.RelocateFiles = "[tyrs2_data]" & "," & "[" & App.Path & "\rcrs_data.mdf]," & _
                        "[tyrs2_log]" & "," & "[" & App.Path & "\rcrs_log.ldf]"
    DoEvents
    ores.SQLRestore oSql                                '调用恢复方法
    Set ores = Nothing
    Set oSql = Nothing
    Exit Sub
errHwd:
    Select Case Err.Number
        Case -2147221499
            '这个错误尚不知道原因,但不影响操作结果
            Resume Next
        Case -2147218403
            MsgBox "数据库正在使用,请关闭所有正在使用数据的程序!", vbExclamation, "错误"
        Case Else
            MsgBox Err.Number & vbCrLf & Err.Description, vbExclamation, "提示"
    End Select
End Sub
'恢复事件
Private Sub ores_PercentComplete(ByVal Message As String, ByVal Percent As Long)
        ProBar.Value = ProBar.Max * (Percent / 100)      '设置进度条
End Sub

时间: 2024-12-29 15:47:00

关 SQLDMO 组件在一些用法!的相关文章

Android桌面组件App Widget用法入门教程_Android

本文实例讲述了Android桌面组件App Widget用法.分享给大家供大家参考.具体如下: Android开发应用除了程序应用,还有App Widget应用.好多人会开发程序应用而不会开发App Widget应用.本帖子就是帮助大家学习如何开发App Widget应用的. 先简单说说App Widget的原理.App Widget是在桌面上的一块显示信息的东西,通过单击App Widget跳转到程序入口类.而系统自带的程序,典型的App Widget是music,这个Android内置的音乐

Android编程四大组件之Activity用法实例分析_Android

本文实例讲述了Android编程四大组件之Activity用法.分享给大家供大家参考,具体如下: 这里详细介绍如何创建Activity.生命周期.内存管理.启动模式. 创建Activity 一.定义Activity 1. 定义Activity 定义类继承Activity 2.在AndroidManifest.xml的节点中声明<activity> 显式意图创建Activity三种方式方式 //第一种方式:构造函数,代码少 Intent intent1 =new Intent(this,NewA

Android编程四大组件之Activity用法实例分析

本文实例讲述了Android编程四大组件之Activity用法.分享给大家供大家参考,具体如下: 这里详细介绍如何创建Activity.生命周期.内存管理.启动模式. 创建Activity 一.定义Activity 1. 定义Activity 定义类继承Activity 2.在AndroidManifest.xml的节点中声明<activity> 显式意图创建Activity三种方式方式 //第一种方式:构造函数,代码少 Intent intent1 =new Intent(this,NewA

Android桌面组件App Widget用法入门教程

本文实例讲述了Android桌面组件App Widget用法.分享给大家供大家参考.具体如下: Android开发应用除了程序应用,还有App Widget应用.好多人会开发程序应用而不会开发App Widget应用.本帖子就是帮助大家学习如何开发App Widget应用的. 先简单说说App Widget的原理.App Widget是在桌面上的一块显示信息的东西,通过单击App Widget跳转到程序入口类.而系统自带的程序,典型的App Widget是music,这个Android内置的音乐

Ext中下拉列表ComboBox组件store数据格式用法介绍

本文为大家详细介绍下Ext中下拉列表ComboBox组件store数据格式的基本用法,感兴趣的朋友可以参考下哈,希望对大家有所帮助   复制代码 代码如下: var p_years = new Ext.form.ComboBox( { fieldLabel : '统计年份', anchor : anchor_w, mode : 'remote', maxHeight:100, triggerAction : 'all', selectOnFocus : true, forceSelection

Ext中下拉列表ComboBox组件store数据格式用法介绍_extjs

复制代码 代码如下: var p_years = new Ext.form.ComboBox( { fieldLabel : '统计年份', anchor : anchor_w, mode : 'remote', maxHeight:100, triggerAction : 'all', selectOnFocus : true, forceSelection : true, editable : false, //store :[['11', '2011'], ['12', '2012'],[

Android中ViewPager组件的基本用法及实现图片切换的示例

ViewPager是android-support-v4.jar包里的组件.在布局文件里标签需要连包名一起 写全称<android.support.v4.view.ViewPager /> 基本用法 ViewPager的基本用法我概括为三步 第一步 在主布局文件里放一个ViewPager组件 第二步 为每个页面建立布局文件,把界面写好 第三步 在主Activity里获取ViewPager组件,并为它设定Adapter. Adapter详细讲讲,ViewPager对应的Adapter继承自Pag

Android活动组件的基本用法

活动的基本用法: AndroidManifest.xml文件中注册活动. 隐藏标题栏 在活动中使用Menu创建菜单 销毁一个活动 package com.example.activitytest; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android

Dns组件的一些用法

作用:将IP地址与主机名称互换Dns常用属性1.建立Dns组件Set Dns=SERVER.CretaeObject("aspDNS.LookUp")2 将指定主机名称转化为IP地址"IP地址"=DNS.DNSLookUP("主机名称")3 将指定的IP地址转化为DNS"主机名称"=DNS.ReverseDNSLookUp("IP地址")