VB中用Restore语句恢复数据库时,怎么判断某一数据库已存在,或者正在使用?因为在这种情况下恢复会出错。

解决方案 »

  1.   

    首先你要描述清楚你的问题,别人才可以解答你
    你的数据库是不是sql server
    如果是的话,你可以使用:1.判断和恢复结合起来写
    Object_ID()来判断数据库是否存在
    sql可以这样写: if Object_ID(DatabaseName) is null restore ....
    2.使用sp_helpdb存储过程可以返回一个recordset,第一个字段是name,记录集里面包括了当前
    服务器上所有的sql数据库,接下来怎么判断你知道了吧。
      

  2.   

    我用的数据库是SQL Server2000
      

  3.   

    如果是自已的程序,ado断下就可以。如果是有别人连接,判断了也没用,如果你刚判断完,别人就马上连上来了,一样出错。用错误处理吧,没必要判断
      

  4.   

    on error啊,根据错误号判断
      

  5.   

    我是想在程序第一次运行的时候自动创建sql数据库,可行吗?
      

  6.   

    可行,
    Private Function funCheckDbBase() As Boolean
        '看年度库是否存在
        On Error GoTo Err_Normal
        Dim sSql As String
        Dim arec As New ADODB.Recordset
        arec.ActiveConnection = padoCn
        Set arec = padoCn.Execute(" sp_databases")
        If arec.RecordCount <= 0 Then
            funCheckDbBase = False
            Exit Function
        End If
        Dim bTmp As Boolean
        Dim sTmp As String
        Do While Not arec.EOF
            sTmp = arec.Fields(0)
            If pcDataBaseName = sTmp Then   'DataBaseName
                bTmp = True
                Exit Do
            End If
            arec.MoveNext
        Loop
        If bTmp = True Then
            funCheckDbBase = True
        Else
            funCheckDbBase = False
        End If
        Exit Function
    Err_Normal:
        funCheckDbBase = False
    End Function