ADODB.Connection 错误 ‘800a0e7a’

ADODB.Connection 错误 ‘800a0e7a’
错误描述:

在ASP连接Access数据库的时候,产生如下的出错提示:

ADODB.Connection 错误 ‘800a0e7a’

未找到提供程序。该程序可能未正确安装。

/conn.asp,行 12

原代码:

<%
dim conn
set coon=server.CreateObject(“adodb.connection”)
dim str
str=”provider=Microsoft.jet.OLEDB.4.0;Data Source=” & server.mappath(“blog_db.mdb”)
‘str=”DBQ=”&server.MapPath(“blog_db.mdb”)&”;Driver={Mirosoft access driver(*.mdb)}”
coon.open str
%>

环境:

Windows 2008 R2、IIS7.5、Access 2007(兼容2003)

故障解决方法:开始-运行-cmd,然后输入

cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 true

回车运行就可解决问题

asp程序后台频繁登录的问题

我在网上下载了几个asp程序,但是出现了问题如下:
可以登录后台,但是修改信息的时候都要重复登录,很频繁。
有时候明明输入的验证码是正确的但都提示是错误的。
我网站空间上还架设了一个dede程序没有出现那样的情况。

后来上网找了原因,发现这是用的session验证的,改了,不要用session  改用cookie验证 。
服务器设置的session时间短,是因为过一段时间,就会回收一次缓冲池,就想刷新一下一样,这样你就被踢出来了。
dede用的是cookie,
你的asp的程序,应该在config.asp 或者admin_config.asp或conf.asp;
或者其他的跟配置有关的asp文件,打开以后可以设置  是cookie还是session。

注:这是程序人员为了保证数据的安全性,才这样设置的,要是不这样的话,你登录忘了退出来,别人不是可以修改你的数据信息了吗;
一般程序是通过session.time来控制登录后闲置的时间,比如session.time=10意思是说要是你登录后10分钟都没有在对页面进行任何操作,哪么将退出登录;要是数据要求更严格是,退出一次就需要登录一次,用的是session.abandon。

"数据库连接出错,请检查连接字串"的多种问题解决办法

今天..有一个客户说..昨天重装完的2003系统后,,服务器上所有用到ACCESS数据库的网站,全都用不了了..但MSSQL可以用…,

动网,动易,风讯等等等等…

前提是:数据库CONN.ASP连接路径没错,,DATA目录权限没问题,父路径开启..不是IIS组件和vbscript脚本有问题,,,,缓存更新了…

到底怎么回事???在百度,GOOGLE搜了一大堆,,不是没人回答就是都是说是路径问题,,权限问题和缓存问题…

后来发现,,问题出在WINDOWS目录下的TEMP目录..呵呵..难怪更新缓存也是一样…

只需要把TEMP目录权限改一下就OK了..

———————————————————————————————-
附其它数据库连接出错,请检查连接字串的问题处理解决办法:
1,CONN.ASP的连接路径不对,,,那肯定找不到数据库…修改一下路径,,看清楚IIS上设的你路径喔..

2,IIS组件和vbscript脚本有问题

3,缓存,更新一下缓存:下一个缓存文件到你的空间直接执行就可以了。

4,连接数据库字符串设定过超时脚本的缘故…但如果设定过时限,应时连接超时,而非连接数据库出错!

    PS:最大的可能就是服务器管理员将连接超时的提示统一为”数据库连接……………..
5,数据库问题,,下载数据库到本地压缩修复..再上传…(记住上传要把服务器里那里***.ldb删掉喔)

6,如果上面五个问题都不是,,那就是我所说的..修改TEMP目录权限就可以了.哈哈哈..

———————————————————————————————–

以上是网上收集的方法,这两天办公室电脑就是这个问题,改了一下temp权限,果然好了。

ASP 防SQL 注入函数

<%
Function SafeRequest(ParaName)
Dim Paravalue
Paravalue=LCase(Trim(ParaName))
Paravalue=Replace(Paravalue,"truncate","")
Paravalue=Replace(Paravalue,"select","")
Paravalue=Replace(Paravalue,"insert","")
Paravalue=Replace(Paravalue,"update","")
Paravalue=Replace(Paravalue,"addnew","")
Paravalue=Replace(Paravalue,"delete","")
Paravalue=Replace(Paravalue,"drop","")
Paravalue=Replace(Paravalue,"and","")
Paravalue=Replace(Paravalue,"net","")
Paravalue=Replace(Paravalue,"or","")
Paravalue=Replace(Paravalue,"exec","")
Paravalue=Replace(Paravalue,"–","")
Paravalue=Replace(Paravalue,"-","")
Paravalue=Replace(Paravalue,";","")
Paravalue=Replace(Paravalue,"%","")
Paravalue=Replace(Paravalue," <","")
Paravalue=Replace(Paravalue,">","")
Paravalue=Replace(Paravalue,"(","")
Paravalue=Replace(Paravalue,")","")
Paravalue=Replace(Paravalue,"window.open","")
Paravalue=Replace(Paravalue,"window.close","")
Paravalue=Replace(Paravalue,"while(1)","")
Paravalue=Replace(Paravalue,"script","")
Paravalue=Replace(Paravalue,"’","")
Paravalue=Replace(Paravalue,"cast","")
Paravalue=Replace(Paravalue,"convert","")
Paravalue=Replace(Paravalue,"exec","")
Paravalue=Replace(Paravalue,chr(34),"")
Paravalue=Replace(Paravalue,chr(39),"")
SafeRequest=Paravalue
End function
%>

通用asp防注入程序

‘防注入把它加到conn里这样就ok了
dim sql_injdata
SQL_injdata = "’|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj = split(SQL_Injdata,"|")

If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script>alert(‘请不要在参数中包含非法字符尝试注入!’);history.back(-1)</Script>"
Response.end
end if
next
Next
End If

If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script>alert(‘请不要在参数中包含非法字符尝试注入!’);history.back(-1)</Script>"
Response.end
end if
next
next
end if

asp计算页面执行时间的方法

  这里以毫秒为单位计算页面的执行时间。页面执行时间:就是从这页的开始执行一直到这页执行完毕所用的时间。

  许多网站的的页尾都会显示一个页面执行时间,下面说说如何实现:

  首先在一个网页的开头定义一个变量:

  dim startime

  startime=timer()

  在显示页面执行时间的地方,这个地方应该是页尾的地方:

   dim endtime

  endtime=timer()

  页面执行时间:<%=FormatNumber((endtime-startime)*1000,3)%>毫秒

记录集对象的方法

rs.movenext 将记录指针从当前的位置向下移一行
rs.moveprevious 将记录指针从当前的位置向上移一行
rs.movefirst 将记录指针移到数据表第一行
rs.movelast 将记录指针移到数据表最后一行
rs.absoluteposition=N 将记录指针移到数据表第N行
rs.absolutepage=N 将记录指针移到第N页的第一行
rs.pagesize=N 设置每页为N条记录
rs.pagecount 根据 pagesize 的设置返回总页数
rs.recordcount 返回记录总数
rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否
rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否
rs.delete 删除当前记录,但记录指针不会向下移动
rs.addnew 添加记录到数据表末端
rs.update 更新数据表记录

如何回到先前的页面

< a href=”< %=request.serverVariables(”Http_REFERER”)% >” >preivous page< /a >
或用图片如:< img src=”arrowback.gif” alt=”< %=request.serverVariables(”HTTP_REFERER”)% >” >