搬家(From Qzone) VB中如何执行sql批处理文件

2005年12月29日 22时40分

今天逛中心论坛看见有人问如何在VB中执行整个sql文件,偶试验了一下,可以做到!
基本的思路是这样的,读取sql文本,执行.(有点像废话..)
在这里要注意一个问题:"go",在sql批处理文本中,用"go"代表一个批处理命令的结束,也就是发送给服务器执行,而VB的ADO对象集合不支持批处理,当执行到"go"时会出错.我们可以判断当前读取行的内容是否为"go",如果是就证明前面的为一组sql命令,就马上执行掉,再读取下一批命令再执行,直到整个文本结束.下面通过一个例子说明一下.
--sql文本
use pubs
go
declare @a int
set @a=1
select @a
go

VB:
    Dim con As New ADODB.Connection
    Dim sql As String '存储一批sql命令
    Dim temp As String '临时变量,存放sql文本每一行的内容
    con.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;initial Catalog=pubs;Data Source=X32" '打开连接
    Open "test.sql" For Input As #1 '打开文件
        While Not EOF(1)
            Line Input #1, temp                      '读取一行数据放到temp变量
            If Ucase(Trim(temp)) = "GO" Then         '如果读取到的为"go"就执行掉"go"前面的sql命令.
                con.Execute sql
                sql = Empty                          '清空上次执行的命令
            Else
                sql = sql & temp & Chr(10) & Chr(13) '连接sql命令
            End If
        Wend
    Close #1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值