Microsoft VBScript 编译器错误 错误 '800a03ee' 缺少 ')' 这个出错,SQL代码如下,请问怎么解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Microsoft VBScript 编译器错误 错误 '800a03ee' 缺少 ')' 这个出错,SQL代码如下,请问怎么解决?相关的知识,希望对你有一定的参考价值。

Select top 10 "sname",cast(sum("cRemain") as decimal (18,1)) from tadd where datediff(month,"dtTime",getdate())=0 group by "sname" order by sum("cRemain") Desc
response.write("<font color=blue> 排名顺序从高到低</font>")
response.write("<p>")
dim cc
cc=("Select top 10 "sname",cast(sum("cRemain") as decimal (18,1)) from tadd where datediff(month,"dtTime",getdate())=0 group by "sname" order by sum("cRemain") Desc")
Set RS=Conn.Execute(cc)
response.write("<tr>")
response.write("<td align=center>")
response.write("<b> 姓名 </b>")
response.write("</td>")
response.write("<td align=center>")
response.write("<b> 本周总金额 </b>")
response.write("</td>")
'----------------------------------
do while not rs.eof
response.write("<font color=blue>")
response.write("<tr>")
response.write("<td>")
response.write""&rs("sname")&""
response.write("</td>")
response.write("<td align=center><font color=blue>")
response.write""&rs("sum("cRemain")")&""
response.write("</td>")
rs.movenext
loop
set conn=nothing
set rs=nothing
END IF
end if
end if

一、(坏的比较严重,连都无法打开页面)
访问IIS客户端出现错信息提示:
The server has encountered an error while loading an application during the processing of your request. Please refer to the event log for more detail information. Please contact the server administrator for assistance.

1、右键我的电脑--管理--本地用户和组,给IUSR_机器名和IWAM_机器名两个用户设置密码,要一样。

2、开始--运行--打cmd,
然后cd c:\Inetpub\Adminscripts
然后cscript.exe adsutil.vbs set w3svc/wamuserpass 你的密码,
然后cscript.exe adsutil.vbs set w3svc/anonymoususerpass 你的密码

看一下,行了没有?如果还不行,那么
cscript.exe synciwam.vbs -v,
然后重新启动IIS

如果还是提示8004E00F错误,此错误是MSDTC服务不正常造成的,解决方法:

首先进入组件服务,查看组件服务/计算机/我的电脑/COM+应用程序,结果报错“COM+ 无法与 Microsoft 分布式事务协调程序交谈”,无法查看里面的对象。
3、进入事件查看器,发现MSDTC服务没有正常启动。
4、删除注册表中的键:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
HKEY_CLASSES_ROOT\CID
5、停止MSDTC服务:net stop msdtc
6、卸载MSDTC服务:msdtc -uninstall
7、重新安装MSDTC服务:msdtc -install
8、确认在事件查看器中MSDTC服务已经正常启动[这步很关键,如果没有,重新启动下电脑看看]
9、重新设置IIS的IWAM账号密码。[在计算机管理中的用户管理里]
10、同步IIS metabase中IWAM_MYSERVER的密码,在CMD中:cd c:\inetput\adminscripts>adsutil set w3svc/wamuserpass "yourpassword"
11、同步COM+应用程序所用的IWAM_MYSERVER密码,在CMD中:cd c:\inetput\adminscripts>cscript synciwam.vbs -v

到这部分应该可以了,但是我这里虽然没有8004e00f的错误提示了,但是访问页面Server Application Error 错误依旧,最后终于找到了解决方法如下:

解决办法:
12:
检查你的DTC服务(全名:Distributed Transaction Coordinator)是否可以正常启动,

如果正常的话请你跳过此步骤;如果出错,无法正常启动,请在开始菜单的运行中 运行:msdtc -resetlog 以创建日志文件。重起机器,检查IIS是否可以正常使用,若不行继续。

13:
在CMD下执行以下命令:
cd %windir%\system32\inetsrv

rundll32 wamreg.dll, CreateIISPackage

regsvr32 asptxn.dll

(到这里我就可以用了,不用重启的)

OK,ASP页面一切正常了@!~~~^_^

二、(坏的比较轻微)正常的时候应该是:
你的计算机名
这3种方式都能打开IIS默认文档,如果不行:

1、查看网站属性——文档
看看启用默认文档中是否存在:index.asp index.htm index.html (最好全都有,没有可添加)

2、查看网站属性——主目录
A、本地路径是否指定正确
B、是否勾选“脚本资源访问”?
C、是否勾选“读取”?
D、执行权限:纯脚本

3、查看网站属性——目录安全性——编辑
A、是否勾选“匿名访问”?
B、用户名:IUSR_您的计算机名(不对,就点浏览选择)
C、密码不用改,勾选“允许IIS控制密码”就可以了
D、其它不用选

4、查看网站属性——网站
A、IP地址:全部未分配 或者 选择一个
B、TCP端口:80 (最好不要改,改了访问方法就不一)

5、打开控制面板——管理工具——计算机管理——本地用户和组——用户

A、看看“IUSR_您的计算机名”此用户有没有启动,必须启动(说明:有红色的×表示没有启动)

B、看看“IWAM_您的计算机名”此用户有没有启动,必须启动(说明:有红色的×表示没有启动)

C、在“IWAM_您的计算机名”该用户上按右键——设置密码(密码要记住,后面还需要用上该密码)

6、打开控制面板——管理工具——组件服务——组件服务——计算机——我的电脑——COM+应用程序

A、在“IIS Out-Of-Process Pooled Applications”上按右键选择‘属性’——选择‘标识’,指定用户:IWAM_您计算机名(说明:可以点浏览查找);输入密码,密码上面步骤的密码。再次启动该服务,启动后它会动。

B、在“IIS In-Process Applications”上按右键选择‘属性’——选择‘安全性’,将‘启用身份验证’勾去掉

C、在“IIS Utilities”上按右键选择‘属性’——选择‘安全性’,将‘启用身份验证’勾去掉。

最后,就是测试了.

三、(数据库不能正常连接的错误)暂时解决方案

错误类型:
Microsoft JET Database Engine (0x80004005)未指定的错误解决

1、系统可能没有注册msjetoledb40.dll,解决办法是
点 开始--->运行, 输入 regsvr32 msjetoledb40.dll, 回车即可

2、数据库所在文件夹权限(NTFS文件系统)
打开办法是:打开我的电脑,然后点菜单上的“文件夹选项”--->查看,然后把“使用简单文件夹共享(推荐)”前面的钩去掉,然后点“确认”;接下来回到需要打开权限的文件夹(数据库存放的文件夹),右键---> 属性--->安全,然后点“添加”--->"高级"--->立即查找--->然后在下面的地方选择“everyone”--->确定--->点刚才加入的"everyone",然后在下面的大框编辑everyone权限为完全控制,保存即可。

3、需要打开guest用户
打开方法:我的电脑--->控制面板--->管理工具---->计算机管理--->本地用户和组---用户---找到"guest",双击,然后把弹出来的狂上的“帐户已停用”前的钩去掉,保存即可。

4、temp(临时文件夹)权限
打开办法:windows--->temp,单击右键选择-属性,你就会看到一个叫做“安全”的选项,添加一个everyone,权限设置为完全控制,再将你正在使用windows的用户也设置为完全控制.(件夹权限
打开办法是:打开我的电脑,然后点菜单上的“文件夹选项”--->查看,然后把“使用简单文件夹共享(推荐)”前面的钩去掉,然后点“确认”;接下来回到需要打开权限的文件夹(数据库存放的文件夹),右键---> 属性--->安全,然后点“添加”--->"高级"--->立即查找--->然后在下面的地方选择“everyone”--->确定--->点刚才加入的"everyone",然后在下面的大框编辑everyone权限为完全控制,保存即可。

另外的偷懒解决方案(换台机器又不行了):

把IIS里的“匿名访问和身份验证控制”换成管理员就行了
使用NTFS重大的问题就是IIS里ASP访问数据库都会出错:

Microsoft JET Database Engine 错误 '80004005'

未指定的错误

/NetDisk/conn.asp

给用户(IUSR_你的计算机名)有数据库文件和数据库所在目录写的权限,按照这样做了,错误依旧出现,后来就只有把IIS的来宾访问用户设置成管理员,暂时这样用了……

现在又想追究一下到底是什么原因,想找出彻底解决办法。又上网搜索了一下,发现还有一个目录要给用户(IUSR_你的计算机名)有写的权限的,就是%SystemRoot%\Temp(即默认安装系统情况下的C:\Windows\Temp)目录,ASP.NET的权限问题也是要给这个临时目录权限,现在ASP的也是。问题得以解决!!
参考技术A 把整行语句写出来,包括变量
=====================
cc="Select top 10 sname,cast(sum(cRemain) as decimal (18,1)) from tadd where datediff(month,dtTime,getdate())=0 group by sname order by sum(cRemain) Desc"追问

现在引号去掉是对了,就是输出页面是空白的
我在SQL查询器里是有数据输出的
请问这是怎么回事呢?

追答

rs("sum("cRemain")")
--->
rs(2)

本回答被提问者和网友采纳

Microsoft VBScript 编译器错误 错误原因 代码大全

Microsoft VBScript 编译器错误 错误 ‘‘ 缺少语句

ActiveServerPages,ASP0126(0x80004005)-->找不到包含文件 
MicrosoftOLEDBProviderforODBCDrivers(0x80040E21)-->sql语句出错(数据类型不匹配或表名(字段名)错误或表处于编辑状态,或表不存在于conn打开的数据库中) 
MicrosoftOLEDBProviderforODBCDrivers(0x80040E14)-->sql语句出错(字段名错误,或数据类型不匹配) 
MicrosoftOLEDBProviderforODBCDrivers(0x80040E07)-->sql语句出错(要插入或更新的字段的类型与变量数据类型不匹配) 
MicrosoftOLEDBProviderforODBCDrivers(0x80040E57)-->sql语句出错(要插入或更新的数据溢出) 
MicrosoftOLEDBProviderforODBCDrivers(0x80040E10)-->sql语句出错(update字段名或要更新的数据类型错误) 
MicrosoftOLEDBProviderforODBCDrivers(0x80004005)-->sql语句出错(要插入或更新的字段的数值不能为空值) 
MicrosoftOLEDBProviderforODBCDrivers(0x80004005) -->打开数据库出错,没有在指定目录发现数据库 
MicrosoftOLEDBProviderforODBCDrivers(0x80040E37)-->没有发现表

MicrosoftVBscript运行时错误(0x800A000D)-->错误引用rs变量(rs对像已关闭或未定义) 
MicrosoftVBscript运行时错误(0x800A01C2)-->vbscript脚本错误(vbscript语句出错) 
MicrosoftVBscript运行时错误(0x800A0006)-->vbscript脚本错误(溢出错误) 
MicrosoftVBscript编译器错误(0x800A040E)-->缺少loop 
MicrosoftVBscript编译器错误(0x800A03EA)-->缺少if或endif 
MicrosoftVBscript编译器错误(0x800A03EE)--> 语句未结束(缺少")") 
MicrosoftVBscript编译器错误(0x800A03F6)-->if语句出错(缺少endif) 
MicrosoftVBscript运行时错误(0x800A005B)-->缺少set 
MicrosoftVBscript运行时错误(0x800A0005)-->变量未定义 
MicrosoftVBscript编译器错误(0x800A03F9)-->if语句缺少then 
MicrosoftVBscript编译器错误(0x800A0411)-->dim语句定义错误 
MicrosoftVBscript编译器错误(0x800A0408)-->sql语句错误(?????????????????) 
Microsoft VBScript 运行时错误 (0x800A01B6)错误原因:set rs=server.create......你少了 set

ADODB.Recordset(0x800A0BB9)-->sql语句出错(sql语句或conn语句未定义或对一个rs属性进行赋值时发生错误) 
ADODB.Recordset(0x800A0CC1)-->rs对像出错(rs对像本身不存在或错误地引用了一个不存在的字段名) 
ADODB.Recordset(0x800A0BCD)-->rs对像出错(记录集中没有记录却对记录集进行操作) 
ADODB.Recordset(0x800A0E78)-->rs对像出错(记录集不存在,缺少rs.open语句) 
ADODB.Recordset(0x800A0CC1) -->rs对像出错(引用了一个不存在的字段名) 
ADODB.Recordset(0x800A0E7D)-->conn定义错误 
ADODB.Recordset(0x800A0CB3)-->数据库以只读方式打开,无法更新数据

如果 VBScript 语句结构违反了一个或多个 VBScript 脚本语言语法规则,就会产生 VBScript 语法错误。 
错误通常在执行程序前,编译程序时产生。 以下是53个语法错误: 
错误编号 描述 
十进制 十六进制 说明 
1001 800A03E9 内存不足 
1002 800A03EA 语法错误 
1003 800A03EB 缺少“:” 
1005 800A03ED 需要 ‘(‘ 
1006 800A03EE 需要 ‘)‘ 
1007 800A03EF 缺少“]” 
1010 800A03F2 需要标识符 
1011 800A03F3 需要 ‘=‘ 
1012 800A03F4 需要 ‘If‘ 
1013 800A03F5 需要 ‘To‘ 
1014 800A03F6 需要 ‘End‘ 
1015 800A03F7 需要 ‘Function‘ 
1016 800A03F8 需要 ‘Sub‘ 
1017 800A03F9 需要 ‘Then‘ 
1018 800A03FA 需要 ‘Wend‘ 
1019 800A03FB 需要 ‘Loop‘ 
1020 800A03FC 需要 ‘Next‘ 
1021 800A03FD 需要 ‘Case‘ 
1022 800A03FE 需要 ‘Select‘ 
1023 800A03FF 需要表达式 
1024 800A0400 需要语句 
1025 800A0401 需要语句的结束 
1026 800A0402 需要整数常数 
1027 800A0403 需要 ‘While‘ 或 ‘Until‘ 
1028 800A0404 需要 ‘While,‘、 ‘Until,‘ 或语句未结束 
1029 800A0405 需要 ‘With‘ 
1030 800A0406 标识符太长 
1031 800A0407 无效的数 
1032 800A0408 无效的字符 
1033 800A0409 未结束的串常量 
1034 800A040A 未结束的注释 
1037 800A040D 无效使用关键字 ‘Me‘ 
1038 800A040E ‘loop‘ 没有 ‘do‘ 
1039 800A040F 无效 ‘exit‘ 语句 
1040 800A0410 无效 ‘for‘ 循环控制变量 
1041 800A0411 名称重定义 
1042 800A0412 必须为行的第一个语句 
1043 800A0413 不能赋给非Byval参数 
1044 800A0414 调用 Sub 时不能使用圆括号 
1045 800A0415 需要文字常数 
1046 800A0416 需要 ‘In‘ 
1047 800A0417 需要 ‘Class‘ 
1048 800A0418 必须在一个类的内部定义 
1049 800A0419 在属性声明中需要 Let , Set 或 Get 
1050 800A041A 需要 ‘Property‘ 
1051 800A041B 参数数目必须与属性说明一致 
1052 800A041C 在类中不能有多个缺省的属性/方法 
1053 800A041D 类初始化或终止不能带参数 
1054 800A041E Property Let 或 Set 至少应该有一个参数 
1055 800A041F 不需要的 ‘Next‘ 
1056 800A0420 只能在 ‘Property‘ 或 ‘Function‘ 或 ‘Sub‘ 上指定 ‘Default‘ 
1057 800A0421 说明 ‘Default‘ 必须同时说明 ‘Public‘ " 
1058 800A0422 只能在 Property Get 中指定 ‘Default‘

VBScript 运行时错误 
如果 VBScript 脚本执行系统无法实施的操作,则会产生 VBScript 运行时错误。只有在运行脚本、为变量表达式赋值或 
分配内存时,才会产生 VBScript 运行时错误。 以下是65个运行时错误: 
错误编号 描述 
十进制 十六进制 说明 
5 800A0005 无效过程调用或参数 
6 800A0006 溢出 
7 800A0007 内存不足 
9 800A0009 下标越界 
10 800A000A 该数组为定长的或临时被锁定 
11 800A000B 被零除 
13 800A000D 类型不匹配 
14 800A000E 字符串空间溢出 
17 800A0011 无法执行请求的操作 
28 800A001C 堆栈溢出 
35 800A0023 未定义 Sub 或 Function 
48 800A0030 加载 DLL 错误 
51 800A0033 内部错误 
52 800A0034 坏文件名或数 
53 800A0035 文件未找到 
54 800A0036 坏文件模式 
55 800A0037 文件已经打开 
57 800A0039 设备I/O错误 
58 800A003A 文件已经存在 
61 800A003D 磁盘空间已满 
62 800A003E 输入超出文件尾 
67 800A0043 文件太多 
68 800A0044 设备不可用 
70 800A0046 权限禁用 
71 800A0047 磁盘未准备好 
74 800A004A 不能用不同的驱动器重新命名 
75 800A004B 路径/文件访问错误 
76 800A004C 路径未找到 
91 800A005B 未设置对象变量 
92 800A005C For 循环未初始化 
94 800A005E 非法使用 Null 
322 800A0142 不能建立所需临时文件 
424 800A01A8 需要对象 
429 800A01AD ActiveX 部件无法创建对象 
430 800A01AE 类不支持自动化 
432 800A01B0 在自动化操作中未找到文件名或类名 
438 800A01B6 对象不支持该属性或方法 
440 800A01B8 Automation错误 
445 800A01BD 对象不支持此操作 
446 800A01BE 对象不支持指定的参数 
447 800A01BF 对象不支持当前的区域设置 
448 800A01C0 未找到命名参数 
449 800A01C1 参数不可选 
450 800A01C2 错误的参数个数或无效的参数属性值 
451 800A01C3 对象不是一个集合 
453 800A01C5 指定的dll函数未找到 
455 800A01C7 代码源锁错误 
457 800A01C9 这个键已经是本集合的一个元素关联 
458 800A01CA 变量使用了一个 VBScript 中不支持的自动化(Automation)类型 
462 800A01CE 远程服务器不存在或不能访问 
481 800A01E1 无效图片 
500 800A01F4 变量未定义 
501 800A01F5 违法的分配 
502 800A01F6 脚本对象不安全 
503 800A01F7 对象不能安全初始化 
504 800A01F8 对象不能安全创建 
505 800A01F9 无效的或不合格的引用 
506 800A01FA 类未被定义 
507 800A01FB 发生异常 
5016 800A1398 需要正则表达式对象 
5017 800A1399 正则表达式中的语法错误 
5018 800A139A 错误的数量词 
5019 800A139B 在正则表达式中需要 ‘]‘ 
5020 800A139C 在正则表达式中需要 ‘)‘ 
5021 800A139D 字符集越界 

32811 800A802B 元素未找到


























































































以上是关于Microsoft VBScript 编译器错误 错误 '800a03ee' 缺少 ')' 这个出错,SQL代码如下,请问怎么解决?的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft VBScript 编译器错误 错误 '800a03ea'

Microsoft VBScript 编译器错误 错误 '800a03fb'

Microsoft VBScript 编译器错误 错误 '800a03ee' 缺少 ')' 这个出错,SQL代码如下,请问怎么解决?

使用VBScript控制Microsoft单词选项

在连接本地WMI提供程序时出现错误 70。没有权限(Microsoft VBScript运行时错误

VBScript编译错误 - 错误:预期')' - 800A03EE