当然可以,举个例子~~ dim setupSQL as string dim CN as New ADODB.Connection dim setupRst as ADODB.Recordset
'建立连接 cn... cn.open
setupSQL = "EXEC 存储过程名字" & 参数 Set setupRst = cn.Execute(setupSQL)
应该是读出*.sql的内容,然后再执行的
对啊,*.sql完全内容完全可以用记事本打开,那么用程序也会打开的,你那么厉害当然会读了。
读出*.sql的内容是可以,关键是通过什么来执行它?!
Dim cn As New ADODB.Connection cn.Open yourconnectstring cn.Execute("master.dbo.xp_cmdshell ' osql /U sa /P /i c:\myquery.sql'") ....
sorry!执行sql server的脚本文件最好用事务, Dim cn As New ADODB.Connection cn.Open yourconnectstring cn.BeginTrans'启动事务 cn.Execute("master.dbo.xp_cmdshell ' osql /U sa /P /i c:\myquery.sql'") if err.number<>0 then cn.RollbackTrans'回滚 else cn.CommitTrans'提交 end if ....
Public Function Creat_Table(data As String, Files As String) As Boolean '本模块用于从*.SQL中导入数据库结构到SQL Server Dim SQL, Txtline As String On Error Resume Next 'Cn.Close On Error GoTo Err1 'ConSQL Load_ini("服务器名"), Load_ini("用户名"), Load_ini("口令"), data, "Cn" SQL = " " Open App.Path & "\log.txt" For Output As #2 ' 打开输出文件。 ' 将错误数据写入文件。 Open App.Path & Files For Input As #1 ' 打开SQL文件。 Do While Not EOF(1) Line Input #1, Textline If Not (Trim(Textline) = "GO") Then SQL = SQL & Textline & Chr(13) Else Cn.Execute SQL 'Mid(SQL, InStr(SQL, "C")) SQL = " " End If Loop Close #1 Close #2 If Creat_Table = False Then Shell App.Path & "\log.txt" End If
Exit Function Err1: Print #2, "This is a Error !" Print #2, Err.Description Print #2, Err.Number Print #2, "**********" Creat_Table = False Resume Next End Function
Dim db As New SQLDMO.Database Dim strScript As String 1.strScript =脚本文件 的内容 2.db.ExecuteImmediate strScript我试过! 执行了!
dim setupSQL as string
dim CN as New ADODB.Connection
dim setupRst as ADODB.Recordset
'建立连接
cn...
cn.open
setupSQL = "EXEC 存储过程名字" & 参数
Set setupRst = cn.Execute(setupSQL)
cn.Open yourconnectstring
cn.Execute("master.dbo.xp_cmdshell ' osql /U sa /P /i c:\myquery.sql'")
....
Dim cn As New ADODB.Connection
cn.Open yourconnectstring
cn.BeginTrans'启动事务
cn.Execute("master.dbo.xp_cmdshell ' osql /U sa /P /i c:\myquery.sql'")
if err.number<>0 then
cn.RollbackTrans'回滚
else
cn.CommitTrans'提交
end if
....
'本模块用于从*.SQL中导入数据库结构到SQL Server
Dim SQL, Txtline As String On Error Resume Next
'Cn.Close
On Error GoTo Err1
'ConSQL Load_ini("服务器名"), Load_ini("用户名"), Load_ini("口令"), data, "Cn"
SQL = " "
Open App.Path & "\log.txt" For Output As #2 ' 打开输出文件。
' 将错误数据写入文件。 Open App.Path & Files For Input As #1 ' 打开SQL文件。
Do While Not EOF(1)
Line Input #1, Textline
If Not (Trim(Textline) = "GO") Then
SQL = SQL & Textline & Chr(13)
Else
Cn.Execute SQL 'Mid(SQL, InStr(SQL, "C"))
SQL = " "
End If
Loop
Close #1
Close #2
If Creat_Table = False Then
Shell App.Path & "\log.txt"
End If
Exit Function
Err1:
Print #2, "This is a Error !"
Print #2, Err.Description
Print #2, Err.Number
Print #2, "**********"
Creat_Table = False
Resume Next
End Function
Dim strScript As String
1.strScript =脚本文件 的内容
2.db.ExecuteImmediate strScript我试过! 执行了!