用vb如何调用*.sql文件?

lczddd 2003-10-18 08:42:23
我的脚本放到sql文件中了,我如何执行??赫赫
...全文
54 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lczddd 2003-10-19
  • 打赏
  • 举报
回复
如果是单存的字符串处理,那应该没有什么意义了,好多软件都是用sql文件的,比如sql pack3,好多sql文件,我觉得不可能是字符串的操作
easydone 2003-10-19
  • 打赏
  • 举报
回复

这是我的一段代码,是使用SQLDMO创建sql server数据库的一部分
总体的思路就是将.sql文件读取到string中,然后将该字符串作为参数(sql语句)传递给对象,如:adodb.connection等。
Private Sub cmdCreate_Click()
Dim NativeLogin As New SQLDMO.Login
Dim SysDataBase As New SQLDMO.Database
Dim SysFileData As New SQLDMO.DBFile
Dim SysLogFile As New SQLDMO.LogFile
Dim SysRole As New SQLDMO.DatabaseRole
Dim SysUser As New SQLDMO.User
Dim sql1 As String * 61800
Dim Fno As Integer

On Error GoTo errhunter
lblShow.Caption = "正在检测系统文件完整性……"
If Dir(App.Path + "\ct.sql") = "" Then
MsgBox "系统数据文件[ct.sql]丢失,数据库安装无法完成!", vbCritical, "错误"
Exit Sub
End If

PBarShow.Value = 6
lblShow.Caption = "正在装载数据库建表文件……"

Fno = FreeFile
Open App.Path + "\ct.sql" For Binary As #Fno
Get #Fno, , sql1
Close #Fno
PBarShow.Value = 9
If sql1 = "" Then
MsgBox "数据文件装载失败,数据库安装无法完成!", vbCritical, "错误"
Exit Sub
End If

Me.MousePointer = 11


lblShow.Caption = "开始创建数据库……"
SysDataBase.Name = SysDBname
SysFileData.Name = SysDBname
PBarShow.Value = 10
SysFileData.PhysicalName = SqlSrv.Registry.SQLDataRoot & "\DATA\" & SysDBname & ".mdf"
SysFileData.PrimaryFile = True
SysFileData.Size = 20
PBarShow.Value = 30
SysFileData.FileGrowthType = SQLDMOGrowth_Percent
SysFileData.FileGrowth = 50
PBarShow.Value = 40
lblShow.Caption = "正在创建数据库数据文件……"
SysDataBase.FileGroups("PRIMARY").DBFiles.Add SysFileData
PBarShow.Value = 50

lblShow.Caption = "开始创建数据库日志文件……"
SysLogFile.Name = SysDBname & "Log"
SysLogFile.PhysicalName = SqlSrv.Registry.SQLDataRoot & "\DATA\" & SysLogFile.Name & ".ldf"
PBarShow.Value = 60
SysLogFile.Size = 5
lblShow.Caption = "正在创建数据库日志文件……"
SysDataBase.TransactionLog.LogFiles.Add SysLogFile
PBarShow.Value = 65
lblShow.Caption = "正在完成数据库文件的创建……"
SqlSrv.Databases.Add SysDataBase
PBarShow.Value = 70

SysRole.Name = "admin@zdh.net"
SysRole.AppRole = True
SysRole.Password = "password!"
SqlSrv.Databases("" & SysDBname & "").DatabaseRoles.Add SysRole
PBarShow.Value = 81

If Not SqlSrv.IsLogin("user@zdh.yh") Then
Set NativeLogin = Nothing
NativeLogin.Name = "user@zdh.yh"
NativeLogin.Database = SysDBname
NativeLogin.SetPassword "", "password"
SqlSrv.Logins.Add NativeLogin
End If
Set SysUser = Nothing
SysUser.Name = "user@zdh.yh"
SysUser.Login = "user@zdh.yh"
SqlSrv.Databases("" & SysDBname & "").Users.Add SysUser

PBarShow.Value = 84
'SqlSrv.ServerRoles("public").AddMember "user@zdh.yh"

lblShow.Caption = "正在设置本系统的缺省数据库……"
SqlSrv.Logins("user@zdh.yh").Database = SysDBname

lblShow.Caption = "正在数据库中建表……"
SqlSrv.Databases("" & SysDBname & "").ExecuteImmediate sql1
PBarShow.Value = 90
lblShow.Caption = "正在创建办公系统内置角色……"

PBarShow.Value = 100
Me.MousePointer = 0
lblShow.Caption = "安装创建完成!"
cmdCorF.Caption = "完 成"
FrmBackGroud.lblfinish.Visible = True
IsBlue = False
FrmBackGroud.Refresh
cmdCreate.Enabled = False
MsgBox "数据库创建成功!", vbOKOnly, "完成"
cmdCorF_Click
Exit Sub

errhunter:
Me.MousePointer = 0
PBarShow.Value = 100
lblShow.Caption = "数据库创建失败!若要下次正常执行,您必须手工删除创建失败的数据库及相关登录。"
WIW "数据库安装:", Err.Description
MsgBox "安装过程中出现如下错误:" & Chr(13) & Err.Description & "安装异常终止!", vbCritical, "错误"
End Sub
benjamin8064 2003-10-19
  • 打赏
  • 举报
回复
因为sql文件是纯文本文件,所以我觉得应该采用:
1、首先按照文本文件方式打开该sql文件,
2、然后再执行里面的内容即可。
fafan 2003-10-19
  • 打赏
  • 举报
回复
存储过程
lczddd 2003-10-19
  • 打赏
  • 举报
回复
霍,没有人会???

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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