:
Sub ExecuteSqlScript(FilePath As String)
Dim Script As String
Dim FileNumber As Integer
Dim Delimiter As String
Dim aSubscript() As String
Dim Subscript As String
Dim i As Long
Delimiter = ";"
FileNumber = FreeFile
Script = String(FileLen(FilePath), vbNullChar)
' Grab the scripts inside the file
Open FilePath For Binary As #FileNumber
Get #FileNumber, , Script
Close #FileNumber
' Put the scripts into an array
aSubscript = Split(Script, Delimiter)
' Run each script in the array
For i = 0 To UBound(aSubscript) - 1
aSubscript(i) = Trim(aSubscript(i))
Subscript = aSubscript(i)
CurrentProject.Connection.Execute Subscript
Next i
End Sub
Örnek dan şu şekildedir: VB.NET bunu Do
exec master..xp_cmdshell 'osql -E -ix:\path\filename.sql'
Osql yolunda olmalı, tam dosya bilinmelidir, ve girişler doğru şekilde ayarlanmalıdır (seçenekler -E veya -U)
Başka bir SQL komut dosyasından bir SQL betiğini çağırmak istediğini düşünüyorum. Chris Ballance'nin önerdiği gibi harici komut dosyalarından ve dillerden SQL komut dosyalarını çağırmayın. devio'nun çözümü işe yarayabilir, eğer tam yollara ihtiyaç varsa bir ağrı olabilir. – tjmoore