[共享]如何实现执行一段.sq;文件,并可以创建用户

zyg0 2005-03-24 08:56:47
我利用这个过程赚了很多可用分,现在共享出来
'还有创建数据库和创建用户等操作,我都给打得注视.注意数据库也可以同过.sql文件创建
'首先要引用sql mo 对象
'ExexSC(服务器名,用户名,密码,脚本路径)

'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Public Sub ExexSC(TxtServerName As String, TxtLoginName As String, _
TxtLoginPWD As String, yourFileName As String)
'首先引用SQL DMO OBJECTLIBRARY
Dim GOBJServer As SQLDMO.SQLServer
Set GOBJServer = New SQLDMO.SQLServer
GOBJServer.LoginTimeout = 10
GOBJServer.Connect TxtServerName, TxtLoginName, TxtLoginPWD
'登录数据库服务器
'''''''''''''''''''''
'Dim LOBJDatabase As New SQLDMO.Database
' LOBJDatabase.Name = LStrDBName
'
' '建立数据库数据文件
' Dim LObjDBF As New SQLDMO.DBFile
' LObjDBF.Name = LStrDBName '名称
' LObjDBF.PhysicalName = GOBJServer.Registry.SQLDataRoot & "\DATA\" & LStrDBName & ".dbf" '文件名称
' LObjDBF.Size = 10 '初始大小10M
' LObjDBF.FileGrowthType = SQLDMOGrowth_Percent '增长方式为按比例
' LObjDBF.FileGrowth = 5 '增长5%
' LOBJDatabase.FileGroups("PRIMARY").DBFiles.Add LObjDBF '将数据库文件绑定到数据库
'
' '建立日志文件
' Dim lOBJLogF As New SQLDMO.LogFile
' lOBJLogF.Name = LStrDBName & "_Log.ldf"
' lOBJLogF.PhysicalName = GOBJServer.Registry.SQLDataRoot & "\DATA\" & LStrDBName & "_log.ldf" '文件名称
' lOBJLogF.Size = 5 '初始大小5M
' LOBJDatabase.TransactionLog.LogFiles.Add lOBJLogF '将日志文件增加到数据库
'
' '将数据库添加到服务器
' GOBJServer.Databases.Add LOBJDatabase
''建立新的数据库
'''''''''''''''''''''''''''''''
'Dim lObjLogin As New SQLDMO.Login '登录用户对象
'Dim lObjUser As New SQLDMO.User '数据库用户对象
'
'lObjLogin.Name = Trim(TxtUserName.Text) '指定用户登录名
'lObjLogin.Database = CboDatabases.Text '默认登录数据库
'lObjLogin.DenyNTLogin = False '非NT系统登录
'GOBJServer.Logins.Add lObjLogin '添加登录用户
'lObjLogin.SetPassword "", Trim(TxtPWD.Text) '指定密码
'GOBJServer.ServerRoles(1).AddMember Trim(TxtUserName.Text) '指定用户为超级用户
'lObjUser.Name = lObjLogin.Name '指定用户名
'lObjUser.Login = lObjLogin.Name '
'GOBJServer.Databases(CboDatabases.Text).Users.Add lObjUser '为系统数据库添加该新用户
''为新数据库建立用户
'''''''''''''''''''''''''''''''''''
Dim fillname As Integer '文件句柄
Dim lStrLine As String
fillname = FreeFile
Dim UstrSQlScript As String '记录数据库脚本
Open yourFileName For Input As #fillname
Do While Not EOF(fillname)
Line Input #fillname, lStrLine
UstrSQlScript = UstrSQlScript + lStrLine + (Chr(13) + Chr(10))
Loop
Close #fillname
'读出脚本文件到变量
''''''''''''''
'执行脚本建立数据库
GOBJServer.Databases("pubs").ExecuteImmediate UstrSQlScript, SQLDMOExec_Default

MsgBox "执行成功"
GOBJServer.Close
Set GOBJServer = Nothing
End Sub
...全文
111 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
DawnPine 2005-03-24
  • 打赏
  • 举报
回复
好帖!收藏!!
88391788 2005-03-24
  • 打赏
  • 举报
回复
接点分顺便mark,俺已经发光了可用分了,所以过来接点分+_+!

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧