这篇很短,但是我影响太深刻了。
事件一:
数据库无法连接
本来的后台数据库是Access,考虑性能问题,我把它迁移到SQL Server上面,结果就提示
提示
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
用DSN还是直接连接都不行
Provider=SQLOLEDB.1;Password=***;Persist Security Info=True;User ID=sa;Initial Catalog=Northwind;Data Source=127.0.0.1
DSN=LocalServer;UID=sa;PWD=***;WSID=DARKREADSTATION;DATABASE=Northwind
当时就抓狂了,上CSDN问人,结果用他们的代码就行的,用我的就不行,回帖看自己的代码
原来是变量错了
dbp=连接字符串
当时conn.open的确是dbq,一个字母之差,花费了我半天功夫。
事件二:
在页面的JS代码中是区分大小写的,千万注意。
事件三:
<!--#include file="include/conn.asp"-->
<%
set rs=server.createobject("adodb.recordset")
sql="select [id],[tixing],[do] from examlog where tixing='pan' order by ID"
rs.open sql,conn,1,3
do while not rs.eof or rs.bof
rs("do")="xxx"
rs.update
rs.movenext
loop
rs.close
set rs = nothing
有问题么?
Access下面是没有的,别和我争论,我这边没有;SQL下面就不行了,瞬间抓狂
其实,问题就在在sql中的那个"order by ID",有order by,就不行。
处理方法非常简单
在rs.open前面添加
rs.CursorLocation = 3 'adUserClient
添加一个客户端游标,我觉得原理是在没有order by,那么rs中数据排列,与SQL SVR中的排列是一样的,有了order by那么数据顺序就不一样了,不加客户游标,定位是个问题,这是我瞎猜的,有高手摆脱指点下。我以前写VB都写的,但发现很多ASP里面都没有,而且ASP没有VB的代码提示,能省则省了,结果,哎一天一夜啊。还有个问题直接写adUserClient不行,没有这个参数,要写3。