• 三个ASP问题

    post by Holmesian / 2009-2-26 13:23 Thursday
    天搞一个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;Data Source="&Server.MapPath("data\#Holmesian33894869abc.mdb")




    只是这样之后可能会有一些原来的SQL语句会出现问题   

    目前来看之后逐个修改了



    ————————————————————————————————————————————————
    另外一个是

    多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值



    原因是提交的表单项目中含有 回车的内容

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

    改成

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


    问题解决 但是回车之后的内容不会保留

    这个问题的出现很有间歇性   所以不保证所有出现OLE问题的状况都可以通过这个解决。。。



    ——————————————————————————————————————————————————

    第三个是在页面上
    表单中含有<textarea>控件的内容提交到数据库里去之后

    只要提交的多行文本中含有回车就没办法再调回显示到<textarea>控件中

    原因大概是回车无法显示在textarea中  至少是通过js的方式没办法实现动态更新

    所有只能在接受表单数据的时候对回车进行转义 
    reason1=replace(reason1,chr(13),"\r\n")
    reason1=replace(reason1,chr(10),"\r\n")
    reason1=replace(reason1,chr(32),"\r\n")



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

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

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


    好啦。。  今天就这么多。。。

    发表评论: