这两天因为需要开始学用Dreamweaver MX制作ASP动态网页,借了一本Dreamweaver MX2004的书,就开始按照书上的例子做起来了。没人教有时真的要走好多弯路,下面就是自己遇到的一些问题,这些问题虽然简单但确很能折腾人。
原以为Dreamweaver MX的站点管理能自动生成和发布虚拟目录,按照向导建立好站点后,发现测试服务器就是过不去。后来在IIS建立虚拟目录后,这测试服务器终于成功 了。因为所看的书的配套光盘用的是ACCESS的数据库文件,以前没怎么用过ACCESS,现在才知道这该死的ACCESS有多麻烦。测试一个刚建好的ASP简单查询网页,开始很顺利,但过了一会就老报数据库文件在用,打开出错。上网查了一下才知道这ACCESS居然只能支持单用户,我晕死。哎,以前用惯了SYBASE、ORACLE数据库根本没去想到ACCESS居然是这样。
接着让我纳闷的是建立一个插入记录的ASP网页老报错:操作必须使用一个可更新的查询。检查书上和自己所做的,没什么两样啊。到网上一查才知道,因为书上的ACCESS数据库没设置用户名和密码,在建立数据库连接是正常的,但通过网页修改数据库必须给USERS用户组或者EVERYONE添加能写入数据库文件的权限。以下是这问题的具体解决办法:
错误信息:
Microsoft OLE DB Provider for ODBC Drivers error ''80004005''
[Microsoft][ODBC Microsoft Access 97 Driver] Operation must use an
updateable query.
或者是:
Microsoft JET Database Engine (0x80004005)
操作必须使用一个可更新的查询。
原因:
有几个主要的错误原因:
这个错误发生在当你的程序试图执行更新数据库或其它类似操作时。这是因为
ADO由于以下的几个原因而不能够写数据库造成的。
1。最普遍的原因是匿名用户帐号(IUSR_MACHINE)对该数据库文件没有写权限。
要解决这个问题,在管理器中调整数据库文件的属性,让匿名用户有正确的权限。
当使用ACCESS数据库时,不仅要给文件写的权限,还要给该目录写 的权限,因为
Jet需要在该目录建立一个.ldb文件。
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)
中的查询时,在执行这个查询是会出现该错误。
如果是winXP系统
在文件夹选项里面默认使用简单共享(推荐),把这个选项去掉,
再在文件夹上右键点击,就会出现安全这个选项卡,
原来默认的没有,然后在安全选项卡里面可以设置用户的写入权限了
右击数据库>安全>everyone>将需要的勾上
最让我郁闷的是时不时出现“Provider (0x80004005)未指定的错误 ”,有时它又自动好了。找了好久终于在的46楼找出答案来:
这些是我在用dreamweaver连接数据库是遇到的。
错误通常都在第8行。
1、如果出现“不能连接数据库”请下载新插件。就是XP下dreamweaver的补丁。
2、如果出现“Provider (0x80004005)
未指定的错误
一会有,一会儿无。解决办法。就是加入UID=;PWD=
例:
错误前:MM_okok_STRING = "dsn=bak;"
改正后:MM_okok_STRING = "dsn=bak;UID=;PWD=;"
从以上得出结论用Dreamweaver MX做ASP网页,最好别用ACCESS数据库,虽然它简单,但用起来莫名其妙的问题不少,自己用SQL SERVER就没有出现过以上的问题。
阅读(2821) | 评论(1) | 转发(0) |