三个ASP问题


遇到三个问题,这里记录一下

I. provider 80004005错误

ASP网站遇到了provider 80004005错误

提示

provider 80004005

conn.asp 行3错误

      set conn=server.createobject("ADODB.connection")
      Strconn="DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("data#Holmesian33894869abc.mdb")
      conn.Open Strconn
        set rs=server.CreateObject("ADODB.Recordset")
        set rs1=server.CreateObject("ADODB.Recordset")
        set rs2=server.CreateObject("ADODB.Recordset")
        set rs3=server.CreateObject("ADODB.Recordset")
          set rs4=server.CreateObject("ADODB.Recordset")
          set rs5=server.CreateObject("ADODB.Recordset")
          set rs6=server.CreateObject("ADODB.Recordset")
       set rsconna=server.CreateObject("ADODB.Recordset")
       Response.Buffer = True
    Response.Expires = -1
    Response.ExpiresAbsolute = Now() - 1
    Response.Expires = 0
    Response.CacheControl = "no-cache"

问题出在这里

    Strconn="DRIVER={Microsoft Access Driver*.mdb)};DBQ="&Server.MapPath("data#Holmesian33894869abc.mdb")

这种数据库的连接方法是用于比较老的驱动连接

将DRIVER={Microsoft Access Driver (*.mdb)}改成Provider=Microsoft.Jet.OLEDB.4.0之后问题基本上就可以解决

    Strconn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath("data#Holmesian33894869abc.mdb")

只是这样之后可能会有一些原来的SQL语句会出现问题,目前来看之后逐个修改了


II. OLE DB错误


多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值,原因是提交的表单项目中含有 回车的内容

    rs("原因1")=reason1
    rs("原因2")=reason2

改成

    rs("原因1").value=reason1
    rs("原因2").value=reason2

问题解决 但是回车之后的内容不会保留,这个问题的出现很有间歇性 所以不保证所有出现OLE问题的状况都可以通过这个解决。。。


III. 多行文本换行问题

在页面上,表单中含有<textarea>控件的内容提交到数据库里去之后,只要提交的多行文本中含有回车就没办法再调回显示到<textarea>控件中,原因大概是回车无法显示在textarea中 至少是通过js的方式没办法实现动态更新 ,所有只能在接受表单数据的时候对回车进行转义

    reason1=replace(reason1,chr(13),"")
    reason1=replace(reason1,chr(10),"")
    reason1=replace(reason1,chr(32),"")

这么一来 用Js调用数据库里相应的字段回去的时候就不会出现问题啦~~~

顺便说一下 一般对一些特殊符号也需要转义的

    temp=replace(temp,"<","<")
    temp=replace(temp,">",">")


「倘若有所帮助,不妨酌情赞赏!」

Holmesian

感谢您的支持!

使用微信扫描二维码完成支付


相关文章

发表新评论