所以我有这个代码,我试图在sql server 2005中连接到dsn。
Dim cn, cmd
set cn = createobject("ADODB.connection")
set cmd = createobject("ADODB.command")
cn.open ("dsn=LBILLBKP;UID=lbmkbkp;PWD=lbmkbkp")
cmd.activeconnection = cn
If Err.Number <> 0 Then
ErrLog "Export Script backup Err# 1 " & Err.Description, ErrFile, fso
MailMsg = "The " & Region & " ListBill Export process failed while taking Database backup. Check the server log files (Scrpt.log, Error.Log, ftp.log)"
MailRtn = SendMail(MailList, MailMsg, "0", "0")
If MailRtn <> "0" Then
ErrLog "Export Script backup Err# 2 " & MailRtn, ErrFile, fso
End If
fso = Empty
WScript.Quit
End If
set cmd = nothing
cn.close
set cn = nothing
但它丢了3709错误。我已经使用提到的ID检查了与数据库的连接,并且还手动检查了dsn,它应该进行数据库备份,并且已成功完成备份。我已经从数据源(ODBC)检查了具有相同ID的dsn,它工作正常。我还补充说 wscript.echo( “”) 在代码中的每个语句之后检查哪个语句没有执行,但似乎作业运行正常并且每个步骤都在执行。 请建议我应该做些什么。
答案 0 :(得分:0)
我不知道为什么你的方法不起作用。 我个人使用不同的技术,这确实有效(至少对我而言)。也许你可以试试这个。你必须根据你的情况调整脚本! 不使用DSN的优点是脚本将始终有效(只要数据库服务器可以到达),而不仅仅是在已定义dsn的计算机上。
Dim strServer, strDB, strUser, strPwd, objMyConn, strSQL, objMyRecordset, x
'Declare variables
strServer = "mssql1\mssql1inst1"
strDB = "Obelix"
strUser = "myusername"
strPwd = "mypassword"
Set objMyConn = CreateObject("ADODB.Connection")
Set objMyRecordset = CreateObject("ADODB.Recordset")
'Open Connection
objMyConn.Open "Driver={SQL Server};Server=" & strServer & ";Database=" & strDB, strUser, strPwd
'Set SQL Command
strSQL = "SELECT * FROM addressformatheading"
'Open Recordset
objMyRecordset.Open strSQL, objMyConn
'Do something with the data
Do Until objMyRecordset.EOF
For Each x In objMyRecordset.Fields
Wscript.Echo x.name, " = ", x.value
Next
Wscript.Echo
objMyRecordset.MoveNext
Loop
'Clean up
objMyRecordset.Close
objMyConn.Close