我有数据库的hostname , user name and password 和数据库类型如(mysql  ms sql server, orcal)现在我想要在指定的数据库server上创建一数据库? 然后导入数据库脚本(struct.sql and data.sql ),那么这二个脚文文件又应如何导入呢。

解决方案 »

  1.   


    'ExexSC(服务器名,用户名,密码,脚本路径)'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    Public Sub ExexSC(TxtServerName As String, TxtLoginName As String, _
    TxtLoginPWD As String, yourFileName As String)
    '首先引用SQL DMO OBJECTLIBRARY
    Dim GOBJServer As SQLDMO.SQLServer
    Set GOBJServer = New SQLDMO.SQLServer
    GOBJServer.LoginTimeout = 10
    GOBJServer.Connect TxtServerName, TxtLoginName, TxtLoginPWD
    '登录数据库服务器
    '''''''''''''''''''''
    'Dim LOBJDatabase As New SQLDMO.Database
    '         LOBJDatabase.Name = LStrDBName
    '
    '         '建立数据库数据文件
    '         Dim LObjDBF As New SQLDMO.DBFile
    '         LObjDBF.Name = LStrDBName       '名称
    '         LObjDBF.PhysicalName = GOBJServer.Registry.SQLDataRoot & "\DATA\" & LStrDBName & ".dbf"  '文件名称
    '         LObjDBF.Size = 10    '初始大小10M
    '         LObjDBF.FileGrowthType = SQLDMOGrowth_Percent '增长方式为按比例
    '         LObjDBF.FileGrowth = 5 '增长5%
    '         LOBJDatabase.FileGroups("PRIMARY").DBFiles.Add LObjDBF   '将数据库文件绑定到数据库
    '
    '         '建立日志文件
    '         Dim lOBJLogF As New SQLDMO.LogFile
    '         lOBJLogF.Name = LStrDBName & "_Log.ldf"
    '         lOBJLogF.PhysicalName = GOBJServer.Registry.SQLDataRoot & "\DATA\" & LStrDBName & "_log.ldf" '文件名称
    '         lOBJLogF.Size = 5  '初始大小5M
    '         LOBJDatabase.TransactionLog.LogFiles.Add lOBJLogF    '将日志文件增加到数据库
    '
    '         '将数据库添加到服务器
    '         GOBJServer.Databases.Add LOBJDatabase
    ''建立新的数据库
    '''''''''''''''''''''''''''''''
    'Dim lObjLogin As New SQLDMO.Login   '登录用户对象
    'Dim lObjUser As New SQLDMO.User     '数据库用户对象
    '
    'lObjLogin.Name = Trim(TxtUserName.Text) '指定用户登录名
    'lObjLogin.Database = CboDatabases.Text '默认登录数据库
    'lObjLogin.DenyNTLogin = False          '非NT系统登录
    'GOBJServer.Logins.Add lObjLogin        '添加登录用户
    'lObjLogin.SetPassword "", Trim(TxtPWD.Text) '指定密码
    'GOBJServer.ServerRoles(1).AddMember Trim(TxtUserName.Text) '指定用户为超级用户
    'lObjUser.Name = lObjLogin.Name          '指定用户名
    'lObjUser.Login = lObjLogin.Name         '
    'GOBJServer.Databases(CboDatabases.Text).Users.Add lObjUser '为系统数据库添加该新用户
    ''为新数据库建立用户
    '''''''''''''''''''''''''''''''''''
    Dim fillname As Integer '文件句柄
    Dim lStrLine As String
    fillname = FreeFile
    Dim UstrSQlScript As String     '记录数据库脚本
    Open yourFileName For Input As #fillname
         Do While Not EOF(fillname)
            Line Input #fillname, lStrLine
            UstrSQlScript = UstrSQlScript + lStrLine + (Chr(13) + Chr(10))
         Loop
    Close #fillname
    '读出脚本文件到变量
    ''''''''''''''
    '执行脚本建立数据库
    GOBJServer.Databases("pubs").ExecuteImmediate UstrSQlScript, SQLDMOExec_DefaultMsgBox "执行成功"
    GOBJServer.Close
    Set GOBJServer = Nothing
    End Sub
      

  2.   

    我用的是mysql数据库, 我没有安装sql server, 我打了一下,好你像没有找到这个库