由于对象已关闭,因此不允许进行操作:错误:800A0E78 [英] Operation not allowed as object is closed : Error :800A0E78

查看:68
本文介绍了由于对象已关闭,因此不允许进行操作:错误:800A0E78的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

伙计们,我再次需要您的帮助..
实际上是一个简单的任务,但是给了我错误..

我想在vbscript中执行我的SP.
SP在数据库中生成一个数据表..SP中没有错误.

现在我想从表中获取所有数据并制作一个.csv文件.通过邮件发送(CDO消息)..

我将给vbs代码如下:
在循环中发生错误.

'VBScript文件

Hi guys i want your help again..
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.

' 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"; )
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)
错误 恢复 下一个
strData = "" 功能
设置 设置 iConf = CreateObject( "CDO.Configuration" )
设置 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 cmd = CreateObject("ADODB.Command")
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.


这篇关于由于对象已关闭,因此不允许进行操作:错误:800A0E78的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆