请问高手如何通过vb执行sql server 的脚本文件,就是后缀名为.sql的文件?是否可以通过存储过程来执行?谢谢!!

解决方案 »

  1.   

    怎么没人回答我的问题?难道csdn就没人能回答我的问题吗?
      

  2.   

    当然可以,举个例子~~
        dim setupSQL as string 
        dim CN as New ADODB.Connection
        dim setupRst as ADODB.Recordset
        
        '建立连接
        cn...
        cn.open
       
        setupSQL = "EXEC  存储过程名字" & 参数
        Set setupRst = cn.Execute(setupSQL)
      

  3.   

    应该是读出*.sql的内容,然后再执行的
      

  4.   

    对啊,*.sql完全内容完全可以用记事本打开,那么用程序也会打开的,你那么厉害当然会读了。
      

  5.   

    读出*.sql的内容是可以,关键是通过什么来执行它?!
      

  6.   

    Dim cn As New ADODB.Connection
    cn.Open yourconnectstring
    cn.Execute("master.dbo.xp_cmdshell ' osql /U sa /P /i c:\myquery.sql'")
    ....
      

  7.   

    sorry!执行sql server的脚本文件最好用事务,
    Dim cn As New ADODB.Connection
    cn.Open yourconnectstring
    cn.BeginTrans'启动事务
    cn.Execute("master.dbo.xp_cmdshell ' osql /U sa /P /i c:\myquery.sql'")
    if err.number<>0 then
        cn.RollbackTrans'回滚
    else
        cn.CommitTrans'提交
    end if
    ....
      

  8.   

    Public Function Creat_Table(data As String, Files As String) As Boolean
    '本模块用于从*.SQL中导入数据库结构到SQL Server
    Dim SQL, Txtline As String    On Error Resume Next
        'Cn.Close
        On Error GoTo Err1
        'ConSQL Load_ini("服务器名"), Load_ini("用户名"), Load_ini("口令"), data, "Cn"
        SQL = " "
        Open App.Path & "\log.txt" For Output As #2    ' 打开输出文件。
             ' 将错误数据写入文件。    Open App.Path & Files For Input As #1   ' 打开SQL文件。
            Do While Not EOF(1)
                Line Input #1, Textline
                If Not (Trim(Textline) = "GO") Then
                    SQL = SQL & Textline & Chr(13)
                Else
                    Cn.Execute SQL 'Mid(SQL, InStr(SQL, "C"))
                    SQL = " "
                End If
            Loop
        Close #1
        Close #2
        If Creat_Table = False Then
            Shell App.Path & "\log.txt"
        End If
        
    Exit Function
    Err1:
        Print #2, "This is a Error !"
        Print #2, Err.Description
        Print #2, Err.Number
        Print #2, "**********"
        Creat_Table = False
        Resume Next
    End Function
      

  9.   

    Dim db As New SQLDMO.Database
    Dim strScript As String
    1.strScript =脚本文件 的内容
    2.db.ExecuteImmediate strScript我试过! 执行了!
      

  10.   

    同意用osql工具,可以参考sql的帮助
      

  11.   

    请问,要定义SQLDMO.Database类型的变量,要引用什么dll
      

  12.   

    引用 Microsoft SQLDMO Object Library