频道栏目
首页 > 程序开发 > Web开发 > ASP.Net > 正文
一个用Wsh来控制SqlServer的Dcom的VBs
2006-07-14 07:06:34      个评论      
收藏   我要投稿

   大家知道,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:AssetChecksqltextassetcheck.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


 


点击复制链接 与好友分享!回本站首页
相关TAG标签
上一篇:QQ验证码识别源代码(C#/NET1.1)
下一篇:24点的算法
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站