首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

大侠,用VB判断SQL数据库名称*是否存在,如果不存在就新建数据库的有关问题

2013-02-15 
大侠,用VB判断SQL数据库名称***是否存在,如果不存在就新建数据库的问题?大侠,用VB判断SQL数据库名称***是

大侠,用VB判断SQL数据库名称***是否存在,如果不存在就新建数据库的问题?
大侠,用VB判断SQL数据库名称***是否存在,如果不存在就新建数据库的问题?大侠们看清楚啊,是数据库名称而不是数据表,我在网上查了很多资料就是解决不了,帮忙啊!大侠,本人没什么分,就20分,纯粹是帮忙吧!
[解决办法]

'楼主参考这段:

Private Sub CreateSystemData()
On Error GoTo Err_Proc
       
    G_CreateDataTrue = True
    Pbr.Value = 30
        
    '与master建立连接
    With ac_Tmp
        If .State = adStateOpen Then .Close
        .ConnectionString = "driver=SQL Server;server=SQL实例名;uid=SA;pwd=;database=master"
        .CommandTimeout = 0
        .Open
    End With
    Pbr.Value = 50
    '先判断数据库是否已经存在
    StrSql = "select * from master..sysdatabases where [name] ='NBCRFreightClient'"
    If ar_Tmp.State = adStateOpen Then ar_Tmp.Close
    ar_Tmp.Open StrSql, ac_Tmp, adOpenKeyset, adLockReadOnly
    If ar_Tmp.RecordCount > 0 Then
        MsgBox "数据库已经存在,不能新建!", 48, "提示"
        Picture1.Visible = False
        Exit Sub
    Else
        Pbr.Value = 60
        FilePath = App.path
        If Right(RTrim(FilePath), 1) <> "" Then
            FilePath = RTrim(FilePath) & "\DataBase\Client"
        Else
            FilePath = RTrim(FilePath) & "DataBase\Client"
        End If
        
        Pbr.Value = 80
        StrSql = " RESTORE DATABASE [NBCRFreightClient] FROM  DISK = N'" & App.path & "\sql\NBCRFreightClient.bak' " _
               & " WITH  FILE = 1,NOUNLOAD,STATS = 10,RECOVERY,REPLACE,MOVE N'NBCRFreightClient_Data'" _
               & " TO N'" & FilePath & "\NBCRFreightClient.MDF', MOVE N'NBCRFreightClient_Log'" _
               & " TO N'" & FilePath & "\NBCRFreightClient.LDF'"
        ac_Tmp.Execute StrSql
        Pbr.Value = 90
        
    End If
    Pbr.Value = 100


    ar_Tmp.Close
    ac_Tmp.Close
    
    MsgBox "建立系统数据库成功!", vbInformation, "提示"
    
    Picture1.Visible = False
    Exit Sub
Err_Proc:
    G_CreateDataTrue = False
    MsgBox "建立数据库失败,错误原因为:" & Err.Description, vbExclamation, "提示"
    If ar_Tmp.State = adStateOpen Then ar_Tmp.Close
    If ac_Tmp.State = adStateOpen Then ac_Tmp.Close
End Sub

热点排行