由于对象已关闭,因此不允许进行操作:错误:800A0E78 [英] Operation not allowed as object is closed : Error :800A0E78
问题描述
伙计们,我再次需要您的帮助.. 'VBScript文件 Hi guys i want your help again.. ' VBScript File Q = Chr(34) Q = Chr(34) 报价"输出 QC = Q& QC = Q & ," & Q '用于输出的引号和逗号 "," & Q 'quotes and commas for output strdate = Right( strdate = Right( "0" & Month(Now()-1),2)& _
右( "0" & Month( Now()-1 ),2) & _
Right( "0" & Day(Now()-1),2)&右(年(现在()-1),2)
"0" & Day( Now()-1 ), 2) & Right(Year( Now()-1 ), 2)
设置 cmd = CreateObject( 设置 rs = CreateObject( " ADODB.Recordset"; ) set cmd = CreateObject("ADODB.Command") 这是这个问题的论坛,但我遇到了麻烦: 这篇关于由于对象已关闭,因此不允许进行操作:错误:800A0E78的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
实际上是一个简单的任务,但是给了我错误..
我想在vbscript中执行我的SP.
SP在数据库中生成一个数据表..SP中没有错误.
现在我想从表中获取所有数据并制作一个.csv文件.通过邮件发送(CDO消息)..
我将给vbs代码如下:
在循环中发生错误.
is a simple task actually, but gives me error..
I want to execute my SP in vbscript.
SP produces one data table in database.. there is no error in SP.
Now I want to fetch the all data from the table and make one .csv file..
This file I want send by a mail (CDO message)..
I ll giving the vbs code follow:
Error occures at the loop.
rs2 = CreateObject( " ADODB.Recordset" &"sp_SQLAgentjobsFailed_Mail"
cmd.CommandType = 4 将cmd类型定义为存储过程
设置 从failjobs_temp_table中选择*"
oFso = CreateObject( " Scripting.FileSystemObject" )
strFilePath = "C:\ Files \ attch _" &斯特拉特& .csv"
设置 oFile = oFso.CreateTextFile(strFilePath,8, 真 ""; email_text" & Q)
rs.Open
做 不是 rs2.EOF
oFile.WriteLine(Q& GetData( " email_text" )& Q)
rs2.MoveNext
oFile.Close
WScript.Echo "Done"
功能 GetData(strField)
错误 恢复 下一个
设置 Flds = iConf.Fields
使用 Flds
.Item( "http://schemas.microsoft.com/cdo/configuration/sendusing" " http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"")= 10
.update
结束 iMsg
设置 )= 高"
.Fields.Item( &; :schemas:mailheader:X-Priority" "urn:schemas:httpmail:importance" )= 2
.Fields.Update
.To = myid
.Subject = "sub";
.Textbody = " masg body" 使用
'清除变量
设置 iConf = 没什么
设置 Flds = Msgbox 已发送邮件"
set cn = CreateObject("ADODB.Connection")
set rs = CreateObject("ADODB.Recordset")
set rs2 = CreateObject("ADODB.Recordset")
cn.open "Provider=SQLOLEDB;server=10.16.105.48;Database=LRMO; UID=report_user;Pwd=holiday_road;"
cmd.activeconnection = cn
cmd.commandtext = "sp_SQLAgentjobsFailed_Mail"
cmd.CommandType = 4 'Defines cmd type as Stored Procedure
set rs = cmd.EXECUTE
strSQL = "select * from failjobs_temp_table"
Set oFso = CreateObject("Scripting.FileSystemObject")
strFilePath = "C:\Files\attch_" & strdate & ".csv"
Set oFile = oFso.CreateTextFile(strFilePath,8, True)
oFile.WriteLine(Q & "email_text" & Q )
rs.Open
do WHILE not rs2.EOF
oFile.WriteLine( Q & GetData("email_text") & Q )
rs2.MoveNext
Loop
oFile.Close
WScript.Echo "Done"
Function GetData(strField)
On Error Resume Next
strData = ""
strData = "" & Trim(rs(strField))
GetData = strData
End Function
StrSmartHost = "10.16.11.50"
set iMsg = CreateObject("CDO.Message")
set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmartHost
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
.update
End With
With iMsg
Set .Configuration = iConf
.Fields.Item("urn:schemas:mailheader:X-MSMail-Priority") = "High"
.Fields.Item("urn:schemas:mailheader:X-Priority") = 2
.Fields.Item("urn:schemas:httpmail:importance") = 2
.Fields.Update
.To = myid
.From = destid
.Subject = "sub"
.Textbody = "masg body"
.AddAttachment strFilePath
.Send
End With
' cleanup of variables
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
Msgbox "Mail Sent"推荐答案
错误在代码的这一部分:
rs.Open<在这里打开rs记录集
白色 不是 rs2.EOF<此处您开始使用rs2,但是您没有打开rs2,而是打开了rs实际上rs2此时为空
您是否希望数据神奇地出现在rs2中?
之前这行发生在rs记录集中,而不是rs2,但是在这里您突然切换了
Rob.