分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
Microsoft VBScript 运行时错误 (0x800A01A8)
缺少对象: 'fc'
附近代码如下:
set fs=server.createobject("scripting.filesystemobject")
set f=fs.GetFolder(hx66)
set fc=f.files
end if
%>
<tr class=Hxcmsss><td colspan="5"><font color="#FFA07A"><%=name%></font> 上传文件列表</td></tr>
<form method="post" name=myform>
<tr>
<td width=5></td>
<td align=center>文件名</td>
<td align=center>文件大小</td>
<td align=center>文件类型</td>
<td align=center>创建时间</td></tr>
<%
pagesetup=15 '设定每页的显示数量
If Count/pagesetup > (Count\pagesetup) then
TotalPage=(Count\pagesetup)+1
else TotalPage=(Count\pagesetup)
End If
if Request.QueryString("ToPage")<>"" then PageCount = cint(Request.QueryString("ToPage"))
if PageCount <=0 then PageCount = 1
if PageCount > TotalPage then PageCount = TotalPage
%>
<%
pagesize=15
page=request.querystring("page")
if page="" or not isnumeric(page) then
page=1
else
page=int(page)
end if
filenum=fc.count (这行出错)
pagenum=int(filenum/pagesize)
if filenum mod pagesize>0 then
pagenum=pagenum+1
end if
if page> pagenum then
page=1
end if
i=0
for each f1 in fc
if instr(f1.name,genre) > 0 then
i=i+1
if i>(page-1)*pagesize and i<=page*pagesize then
%>
解析:
第一个
set f=fs.GetFolder(hx66)
不能用相对路径,要用绝对路径,比如有一个文件夹aa,那么要这样写
set f=fs.GetFolder(server.mappath("aa"))
第二个
filenum=fc.count (这行出错)
这个并没有count方法,如果要得到这个文件夹里有多少个文件,那么要用循环来写
For Each theFile In fc
FileCount=FileCount+1
TotleSize=TotleSize+theFile.Size
next
Microsoft VBScript 运行时错误 '800a01ad'
方法一:更新一下缓存...
方法二:用要用SP1原版的所有文件去覆盖你原来的文件就行了,记住要更改conn.asp
原因:道具中心数据库路径设置有错
解决:查看conn.asp文件 ,检查道具中心数据库路径,根据此路径检查服务器上是否存在此文件,如没有请上传至相应位置 。
升级后出现以下错误:
Microsoft VBScript 运行时错误 错误 ’800a0009’
下标越界: ’[number: 0]’
/inc/Dv_ClsMain.asp ,行 659
原因:未使用DVBBS7.1SP1的论坛程序文件。
解决:把数据库放到DVBBS7.1SP1程序中运行,谨记到conn.asp中修改好数据库路径。
有些人更新了缓存,不多久又会出现问题..就要用.第二个方法.
..
补充:
如果你按照以上的还不行.,.就将Access数据库下载到本地,用Access打开数据库 ,在菜单里面找到“数据库实用工具”--“修复和压缩数据库 ”,运行一下,再上传到服务器.
再不行..就是数据库文件没有写入的权限,增加写入权限就可以了,可能是DV_Style表不匹配或损坏,尝试重新建立或导入.
最后的解决办法..
(1)直接进入后台管理 ,清除服务器缓存
(2)到后台新建一个版块,然后更新缓存,然后把该版块删掉 。
(3)运行升级包中的CleanCache.asp执行更新缓存!
请你细心尝试下....今次真的希望帮到你..
如何解决Microsoft VBScript 运行时错误 错误 800a01a8'
这是个常见问题. 试试在DOS窗口里运行下下面的指令,
%systemroot%\system32\regsvr32 "%ProgramFiles%\Dimac Development\JMail\jmail.dll"
如果不行, 再试试下面的, 你自己把你安装的地址换好
[system drive]\[windows folder]\system32\regsvr32 "[where you installed jmail]\jmail.dll"
Microsoft VBScript 运行时错误(0x800A01B6)-->对象不支持此属性或方?怎么解决,急去 、需答案
数据库没有连接
MicrosoftVBScript 运行时错误(0x800A01A8)-->缺少对象
建立一下 conn的连接就行了
datafile ="data/aaa.mdb" '你数据库的位置ACCESS库 如果是SQL库你去BAIDU上搜一下代码都有的
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(""&datafile&"")
Set conn=Server.CreateObject("ADODB.Connection")
conn.open ConnStr
并非所有对象都支持所有属性和方法。此错误有以下原因和解决方法:
1.指定的方法或属性在 Automation 对象中并不存在。
参看对象的文档以获得此对象更多的信息 ,并检查属性和方法的拼写应正确 。
2.指定 Friend 过程做为被调用的后期绑定。
在编译时间必须知道 Friend 过程的名称,它不能出现在后期绑定的调用上。
========================
参考资料MSDN
关于对象和接口的简要补充讨论
本主题,将完成从“创建和实现接口”开始 ,并在“实现属性”中继续讨论的那个代码示例。当然,在开始这个主题之前,阅读一下那些主题是有帮助的 。
这个 Tyrannosaur 和 Flea 代码示例 ,看起来似乎用接口和对象来解决很快,也很轻松。把对象的引用赋给一个对象变量,把接口的引用赋给另一个对象变量。
事实上 ,所有的引用都是对象的引用 。对一个接口的引用也是对实现接口的对象的引用。而且,一个对象可能有多个接口,但在底层它仍然是同一对象。
在 Visual Basic 中,每个类都有一个缺省的接口 ,该接口具有与类相同的名字 。是的,几乎都是同样的。按照惯例,在类名前加一条下划线。该下划线指明了这个接口是隐藏在类型库里的 。
这样 ,Tyrannosaur 类就有一个缺省名为 _Tyrannosaur 的接口。因为 Tyrannosaur 同时实现 Animal,所以该类还有第二个接口(其名为 Animal)。
不过,在它的所有底层 ,对象仍然是 Tyrannosaur 。将一个命令按钮放置到“Form1 ”上,并添加下面的代码:
Private Sub Command1_Click()
Dim ty As Tyrannosaur
Dim anim As Animal
Set ty = New Tyrannosaur
Set anim = ty
MsgBox TypeName(anim)
End Sub
可能期望信息框显示 "Animal",但是 ,事实上显示的是 "Tyrannosaur"。
查询接口
当把 Tyrannosaur 对象赋给 Animal 类型的变量时,Visual Basic 将询问该 Tyrannosaur 对象它是否支持 Animal 接口。(为此所用的方法为 QueryInterface,或者简称 QI;有时可能遇到 QI 作为动词使用。)如果回答是否定的 ,将会产生错误 。
如果回答是肯定的,该对象将被赋给变量。只有通过这个变量 Animal 接口的方法和属性才可被访问。
类属对象变量和接口
如果将对象引用赋给类属对象变量,(如下列代码所示),将会出现什么情况?
Private Sub Command1_Click()
Dim ty As Tyrannosaur
Dim anim As Animal
Dim obj As Object
Set ty = New Tyrannosaur
Set anim = ty
Set obj = anim
MsgBox TypeName(obj)
End Sub
结果得到另一个 Tyrannosaur 。现在 ,通过变量 obj 调用属性和方法时,得到什么接口?将下面的方法添加到 Tyrannosaur 类中:
Public Sub Growl()
Debug.Print "Rrrrrr"
End Sub
Growl 方法属于 Tyrannosaur 对象的缺省接口。在命令按钮的 Click 事件的代码中,用下面的两行代码来取代 MsgBox 语句:
obj.Move 42
obj.Growl
当运行这个工程并单击按钮时 ,执行将在 Growl 方法上停止,并返回错误信息“对象不支持此属性或方法”。很明显,接口仍然是 Animal 。
Object 类型的变量和具有多重接口的对象一起使用时 ,必须记住某些事情。该变量将访问的接口是最后赋值的接口。例如:
Private Sub Command1_Click()
Dim ty As Tyrannosaur
Dim anim As Animal
Dim obj As Object
Set ty = New Tyrannosaur
Set anim = ty
Set obj = anim
obj.Move 42 '成功
obj.Growl '失败
Set obj = ty
obj.Move 42 '失败
obj.Growl '成功
End Sub
幸好,很少将这种比较慢的、后期绑定的 Object 数据类型和具有多重接口的对象一起使用 。使用多重接口的一个主要原因是,通过多态可以得到前期绑定的好处。
其它接口源
Visual Basic 的类模块不是唯一的实现接口的源。可以实现类型库包含的各种接口 ,只要该接口支持 Automation 。
如果有 Visual Basic 专业版或企业版,那么可以创建自己的抽象类的类型库。这些类型库可能在许多工程中用到,就象在《部件工具指南》中 ,“创建 ActiveX 部件”中的“部件设计的一般准则 ”中所描述的那样。
专业版和企业版在 Tools 目录都包括有 MkTypLib (Make Type Library) 实用工具。如果已经用 Microsoft Visual C++ 使用过该实用工具,就会发现这是创建接口的一条更适宜的途径 。
在工程中使用接口
为了在工程中使用接口,可以在“工程”菜单上单击“引用”,打开“引用”对话框。如果类型库已经注册 ,那么它将出现在引用列表中,于是可以复选它。如果类型库不在该列表中,可以使用“浏览 ”按钮对它定位 。
一旦有了对某个类型库的引用 ,就可以使用 Implements 来实现该类型库包含的任何 Automation 接口。
详细信息 并没有限制一定要实现为抽象接口。下面的“代码重用的许多(内部)方面”中描述了怎样实现一个接口,以及选择性地重用该接口提供的类的属性和方法 。
本文来自作者[夏之]投稿,不代表格瑞号立场,如若转载,请注明出处:https://gree0731.com/ig/686.html
评论列表(4条)
我是格瑞号的签约作者“夏之”!
希望本篇文章《Microsoft VBScript 运行时错误 (0x800A01A8) 本人菜鸟》能对你有所帮助!
本站[格瑞号]内容主要涵盖:生活百科,小常识,生活小窍门,知识分享
本文概览:分类: 电脑/网络 >> 程序设计 >> 其他编程语言 问题描述: Microsoft VBScript 运行时错误 (0x800A01A8)...