首页 新闻 搜索 专区 学院

在未装office的机子上能否用asp+access???

0
悬赏园豆:30 [待解决问题]

在本地开发了一个asp+access程序。

系统:win7  IIS7 并装有office2007

系统运行正常,并且开发完毕。

 

目前需要将程序全部考到服务器上。服务器环境

系统:win2003  IIS6 没装office

 

但是系统总是显示错误信息。如下

ADODB.Recordset 错误 '800a0e7d'

连接无法用于执行此操作。在此上下文中它可能已被关闭或无效。

/Conn.asp,行 20

下面贴上conn.asp文件

<%
Const Db_Type = "ACC"
Const Db_DateTime = "Now()"

Dim Conn,ConnStr,Rs

Dim SysSiteDbPath
SysSiteDbPath = "Db/Db.mdb"


ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbdns & SysSiteDbPath)

Call OpenConn()

Set Rs = Server.CreateObject("Adodb.RecordSet")

If Application("Ok3w_SiteTitle") = "" Then
    Application.Lock()
    Sql = "select * from Ok3w_SiteConfig"
    Rs.Open Sql,Conn,1,1      这事第20行,也是错误提示的位置
    For i = 0 To Rs.Fields.Count - 1
        Application("Ok3w_" & Rs.Fields(i).Name) = Rs(i).Value
    Next
    Rs.Close
    Application.UnLock()
End If

Private Sub CloseConn()
    Conn.Close
    Set Conn = Nothing
End Sub

Private Sub OpenConn()
    On Error Resume Next
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConnStr
    If Err.Number>2 Then
        'Response.Write("数据库连接错误")
        'Err.Clear
        'Response.End()
        Else
            On Error Goto 0
    End If
End Sub
Set Rs = Server.CreateObject("Adodb.RecordSet")
Rs.open "select * from Pic",conn,3,3
Pic1 = Rs("Pic1")
Pic2 = Rs("Pic2")
Pic3 = Rs("Pic3")
Pic4 = Rs("Pic4")
Pic5 = Rs("Pic5")
Pic6 = Rs("Pic6")
Pic7 = Rs("Pic7")
Pic8 = Rs("Pic8")
link1 = Rs("link1")
link2 = Rs("link2")
link3 = Rs("link3")
link4 = Rs("link4")
link5 = Rs("link5")
link6 = Rs("link6")
link7 = Rs("link7")
ink8 = Rs("link8")
Rs.close
%>

请大家帮忙。百度上搜了一下貌似是权限的问题,但是我将Everyone权限都加了。还是不行。

梧桐雨的笑容的主页 梧桐雨的笑容 | 初学一级 | 园豆:4
提问于:2013-12-26 15:36
< >
分享
所有回答(5)
0

第零,先排除其他错误可能,把SERVER.MAPPATH后的文件夹路径打印在页面上看看,是否路径错误。

第一,不需要服务器安装OFFICE,这个是肯定的。

第二,看看你的WIN2003是否64位,如果是64位,你搜索时包含64位,好像是修改一个注册表位置,我以前碰到过。也是搜索。确认方法是你试试看32位上是否正常运行,别告诉我你本地没有WIN2003环境哦。

爱编程的大叔 | 园豆:30663 (高人七级) | 2013-12-26 15:46

服务器上是32位win2003,确实是报错,貌似找不到数据库?

支持(0) 反对(0) 梧桐雨的笑容 | 园豆:4 (初学一级) | 2013-12-26 15:54

@子心520: 

Provider=Microsoft.Jet.OLEDB.4.0

这个采用的是Microsoft Data Access技术,ACCESS肯定不用安装。

在微软网站可以下载到MDACTYPE.EXE,这个是负责访问ACCESS的。通常只有出了问题才需要自己安装。

排查错误有时很麻烦的,我的建议是:

1、本地虚拟机安装一个WIN 2003,IIS,看你的网站是否能正常运行。

2、还是这个错误的话,检查MapPath后的路径。

3、IIS是否打开了“允许父路径“选项。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30663 (高人七级) | 2013-12-27 12:33
0

愚见:必须装驱动

【秦时明月】 | 园豆:803 (小虾三级) | 2013-12-26 16:40
0

不用装OFFICE,还是找其它原因!

BB林业 | 园豆:202 (菜鸟二级) | 2013-12-26 22:55
0

access是office是的一个组件。必须要装的吧。

angelshelter | 园豆:9676 (大侠五级) | 2013-12-26 23:04
0

不装驱动也可以.

邢少 | 园豆:10924 (专家六级) | 2013-12-27 11:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册