我的脚本放到sql文件中了,我如何执行??赫赫

解决方案 »

  1.   

    因为sql文件是纯文本文件,所以我觉得应该采用:
    1、首先按照文本文件方式打开该sql文件,
    2、然后再执行里面的内容即可。
      

  2.   


    这是我的一段代码,是使用SQLDMO创建sql server数据库的一部分
    总体的思路就是将.sql文件读取到string中,然后将该字符串作为参数(sql语句)传递给对象,如:adodb.connection等。
    Private Sub cmdCreate_Click()
    Dim NativeLogin As New SQLDMO.Login
    Dim SysDataBase As New SQLDMO.Database
    Dim SysFileData As New SQLDMO.DBFile
    Dim SysLogFile As New SQLDMO.LogFile
    Dim SysRole As New SQLDMO.DatabaseRole
    Dim SysUser As New SQLDMO.User
    Dim sql1 As String * 61800
    Dim Fno As Integer
      
    On Error GoTo errhunter
      lblShow.Caption = "正在检测系统文件完整性……"
      If Dir(App.Path + "\ct.sql") = "" Then
          MsgBox "系统数据文件[ct.sql]丢失,数据库安装无法完成!", vbCritical, "错误"
          Exit Sub
      End If
      
      PBarShow.Value = 6
      lblShow.Caption = "正在装载数据库建表文件……"
      
      Fno = FreeFile
      Open App.Path + "\ct.sql" For Binary As #Fno
      Get #Fno, , sql1
      Close #Fno
      PBarShow.Value = 9
      If sql1 = "" Then
          MsgBox "数据文件装载失败,数据库安装无法完成!", vbCritical, "错误"
          Exit Sub
      End If
      
      Me.MousePointer = 11  
      lblShow.Caption = "开始创建数据库……"
      SysDataBase.Name = SysDBname
      SysFileData.Name = SysDBname
      PBarShow.Value = 10
      SysFileData.PhysicalName = SqlSrv.Registry.SQLDataRoot & "\DATA\" & SysDBname & ".mdf"
      SysFileData.PrimaryFile = True
      SysFileData.Size = 20
      PBarShow.Value = 30
      SysFileData.FileGrowthType = SQLDMOGrowth_Percent
      SysFileData.FileGrowth = 50
      PBarShow.Value = 40
      lblShow.Caption = "正在创建数据库数据文件……"
      SysDataBase.FileGroups("PRIMARY").DBFiles.Add SysFileData
      PBarShow.Value = 50
      
      lblShow.Caption = "开始创建数据库日志文件……"
      SysLogFile.Name = SysDBname & "Log"
      SysLogFile.PhysicalName = SqlSrv.Registry.SQLDataRoot & "\DATA\" & SysLogFile.Name & ".ldf"
      PBarShow.Value = 60
      SysLogFile.Size = 5
      lblShow.Caption = "正在创建数据库日志文件……"
      SysDataBase.TransactionLog.LogFiles.Add SysLogFile
      PBarShow.Value = 65
      lblShow.Caption = "正在完成数据库文件的创建……"
      SqlSrv.Databases.Add SysDataBase
      PBarShow.Value = 70  SysRole.Name = "[email protected]"
      SysRole.AppRole = True
      SysRole.Password = "password!"
      SqlSrv.Databases("" & SysDBname & "").DatabaseRoles.Add SysRole
      PBarShow.Value = 81
      
      If Not SqlSrv.IsLogin("[email protected]") Then
        Set NativeLogin = Nothing
        NativeLogin.Name = "[email protected]"
        NativeLogin.Database = SysDBname
        NativeLogin.SetPassword "", "password"
        SqlSrv.Logins.Add NativeLogin
      End If
      Set SysUser = Nothing
      SysUser.Name = "[email protected]"
      SysUser.Login = "[email protected]"
      SqlSrv.Databases("" & SysDBname & "").Users.Add SysUser
        
      PBarShow.Value = 84
      'SqlSrv.ServerRoles("public").AddMember "[email protected]"
      
      lblShow.Caption = "正在设置本系统的缺省数据库……"
      SqlSrv.Logins("[email protected]").Database = SysDBname
      
      lblShow.Caption = "正在数据库中建表……"
      SqlSrv.Databases("" & SysDBname & "").ExecuteImmediate sql1
      PBarShow.Value = 90
      lblShow.Caption = "正在创建办公系统内置角色……"
      
      PBarShow.Value = 100
      Me.MousePointer = 0
      lblShow.Caption = "安装创建完成!"
      cmdCorF.Caption = "完  成"
      FrmBackGroud.lblfinish.Visible = True
      IsBlue = False
      FrmBackGroud.Refresh
      cmdCreate.Enabled = False
      MsgBox "数据库创建成功!", vbOKOnly, "完成"
      cmdCorF_Click
      Exit Sub
      
    errhunter:
      Me.MousePointer = 0
      PBarShow.Value = 100
      lblShow.Caption = "数据库创建失败!若要下次正常执行,您必须手工删除创建失败的数据库及相关登录。"
      WIW "数据库安装:", Err.Description
      MsgBox "安装过程中出现如下错误:" & Chr(13) & Err.Description & "安装异常终止!", vbCritical, "错误"
    End Sub
      

  3.   

    如果是单存的字符串处理,那应该没有什么意义了,好多软件都是用sql文件的,比如sql pack3,好多sql文件,我觉得不可能是字符串的操作