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

今天..有一个客户说..昨天重装完的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权限,果然好了。

解决”操作必须使用一个可更新的查询”

将SQLSERVER转成ACCESS时,提交更新数据的操作,经常出现"操作必须使用一个可更新的查询"的错误.

原因:
有几个主要的错误原因:
这个错误发生在当你的程序试图执行更新数据库或其它类似操作时。这是因为
ADO由于以下的几个原因而不能够写数据库造成的。
1、最普遍的原因是匿名用户帐号(IUSR_MACHINE)对该数据库文件没有写权限。
 要解决这个问题,在管理器中调整数据库文件的属性,让匿名用户有正确的权限。当使用ACCESS数据库时,不仅要给文件写的权限,还要给该目录写 的权限,因为Jet需要在该目录建立一个.ldb文件。
// 2003 系统要加 Authenticated Users 的权限
2、第二个原因是数据库没有使用正确的模式打开。应该使用下面的方法打开。
  SQL = "UPDATE Products Set UnitPrice = 2;"
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Mode = 3   ’3 = adModeReadWrite
  Conn.Open "myDSN"
  Conn.Execute(SQL)
  Conn.Close
  注意默认的Mode是设置0(adModeUnknown),它是允许更新的。
3、还有可能是在ODBC管理器中将该DSN的只读选项选中。
4、你是在同时更新两个表中的字段,也会出现这个错误信息,解决办法是分开来更新这两个表中各自字段。
5、当你使用了一个从低版本中(如ACCESS2.0,ACCESS7.0)载入到高版本(ACCESS 2000)中的查询时,在执行这个查询是会出现该错误

把ACCESS数据库的后缀改成.ASP很危险

有很多人为了防止数据库被下载,都将ACCESS数据库的后缀改成.ASP

可是你有没有想过这样的事:万一网站被入侵获得WEBSHELL,一般会被入侵者挂马;挂马的方法就是用以个批量处理程序给你网站里所有的ASP\HTML\PHP等文件开始或者末尾的地方加上调用木马的HTML代码。如果你的数据库后缀也刚好是.ASP,那数据库也被当做普通的ASP文件,在前面或者后面加了调用木马的HTML代码,之后保存——结果就是数据库彻底玩完。

所以,把数据库的后缀改成ASP是很危险的。
也许你会说你的网站很安全不会被入侵,但是不怕一万就怕万一,谁能保证绝对的安全?
为了你的数据安全,还是不要把数据库的后缀改为ASP,防止下载,还有很多种方法,比如可以放在复杂的路径下或者起个复杂的文件名不让人猜到,或者将.MDB文件映射给一个错误的DLL文件…………,很多方法都可以防止数据库文件被下载。

也许有人说WEBSHELL都被拿下了,那人家给数据库改个后缀不就能下载了。请注意本文讨论的重点在于确保数据库不被无辜搞坏,如果是想下载你的数据库的人,那他肯定不会给你的数据库搞坏掉。如果是想给ASP文件加代码挂马的人,也许人家根本对你的数据库没兴趣。 
 

让access自动编号重新开始

ALTER TABLE 表名 ALTER COLUMN [自动编号字段名] COUNTER (你要的初始值, 1)

  例如:

  ALTER TABLE [user] ALTER COLUMN [id] COUNTER (1, 1)