当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 一个用Wsh来控制SqlServer的Dcom的VBs

ASP.NET
Internet Explorer 编程简述(二)在IE中编辑OLE嵌入文档
移动窗体
.NET 2.0获取数据库连接统计数据
VB.NET 拖动无边框的窗体
利用WH_CBT Hook将非模态对话框显示为模态对话框
Aspect#应用 - 权限验证
VB 从零开始编外挂(一)
【错误解决】Unable to find script library 'WebUIValidation.js'
VB 从零开始编外挂(四)
DTD指南(3)-DTD-Elements(元素)
知识库文章MDL9745154-File:Microsoft Visual Basic 运行时库
.net手机软件开发(六)OBEX应用:文件传输部分
在winform中使用WebBrowser控件时怎样去除IE的滚动条
WINZIP及WINRAR命令!!!!!
智能客户端相关Application Block结构功能分析(二)
如何在VB中操作EXCEL(一段代码,两个可以使用的过程)
在C#中用最简洁有效的代码执行存储过程并返回数据
.Net的Collection类的一些使用说明
ASP.NET实现数据图表c
用asp.net画饼图

ASP.NET 中的 一个用Wsh来控制SqlServer的Dcom的VBs


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 101 ::
收藏到网摘: n/a

   大家知道,wsh(windows script host)在windows平台下是用来代替bat文件的,以其灵活,功能强大许多人都用来处理自己的日常事物,但在调用excel,sqlerver方面可能不是太清楚了,今天这个例子就是  用vbscript来调用Dcom来生成数据库或删除数据库:

可以先建一个以.vbs结尾的文件,靠下面的东西到里面进去,双击就可以执行了,只要把里面的sql脚步的路径和Sqlserver的密码和账户改下就能用了

    Dim str,ff,i ,intt,strtmp '定义普通变量
    Dim goSQLServer,oDatabase '定义Sql_Dmo对象变量
    Dim fso      '定义文件对象

 call main()
'==============================================================================
'==============================================================================
public sub main()
      InitSqlDmo "."

  DropDatabase "Assetcheck"

  CreateDatabase "assetcheck"

  '取得数据库
  Set oDatabase = goSQLServer.Databases("assetCheck")
  'msgbox   oDatabase.PrimaryFilePath

  '执行大量的Sql文本文件
   ExecuteSqlFromFile    "D:\AssetCheck\sqltext\assetcheck.sql"

   ClearSqlDmo

  If Err.Number <> 0 Then MsgBox "发生错误"
  MsgBox "脚本生成完成"
end sub
'-------------------------------------------------------------------------------
'初始化连接对象
public sub InitSqlDmo(aServerName)
 Set fso = CreateObject("Scripting.FileSystemObject")
 Set goSQLServer = CreateObject("SQLDMO.SQLServer")
 goSQLServer.Connect aServerName, "sa", ""
end sub
'-----------------------------------------------------------------------------
'创建数据库
public sub CreateDatabase(astrDataBaseName )
  strtmp = " create DataBase  " &  astrDataBaseName
  goSQLServer.ExecuteImmediate strtmp
end sub
'删除数据库
public sub DropDatabase(astrDataBaseName )
  strtmp = " Drop DataBase  " &  astrDataBaseName
  goSQLServer.ExecuteImmediate strtmp
end sub
'------------------------------------------------------------------------------
'执行脚本
public sub ExecuteSqlFromFile(astrExecuteSqlFile )
 Set ff = fso.OpenTextFile(astrExecuteSqlFile)
  Do While ff.AtEndOfStream <> True
   strtmp = ff.ReadLine
   str = str & vbCrLf & strtmp
   i = i + 1
   If i >= 1500 And strtmp = "" Then
    i = 1
    oDatabase.ExecuteImmediate (str)
    str = ""
   End If
  Loop

  If Trim(str) <> "" Then
   oDatabase.ExecuteImmediate (str)
  End If

  ff.Close
end sub
'-----------------------------------------------------------------------------------
public sub ClearSqlDmo()
 Set fso = Nothing
 Set goSQLServer = Nothing
end sub