|
主题: 关于更新页!本来一直好好的,突然一夜之间不能用了?
|
我哭了
职务:普通成员
等级:1
金币:0.0
发贴:148
|
#12004/10/24 15:43:22
关于更改密码的一个页面,本来一直都好好的,别的更新资料的页面也都正常,唯独这个页面,突然一夜之间就不能用了???我没有对该页进行什么修改啊!!
提交后显示错误信息如下: 错误类型: Microsoft JET Database Engine (0x80040E14) UPDATE 语句的语法错误。 /guestbook/modify.asp, 第 111 行
浏览器类型: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
网页: POST 96 ??? /guestbook/modify.asp
第111行处的代码: 106——If (Not MM_abortEdit) Then 107—— ' execute the update 108—— Set MM_editCmd = Server.CreateObject("ADODB.Command") 109—— MM_editCmd.ActiveConnection = MM_editConnection 110—— MM_editCmd.CommandText = MM_editQuery 111—— MM_editCmd.Execute 112—— MM_editCmd.ActiveConnection.Close
望高手们能给指点一下。到底是怎么了。
|
缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
|
#22004/10/24 15:46:21
Response.Write(MM_editQuery) Response.end()
Set MM_editCmd = Server.CreateObject("ADODB.Command")
看看输出的SQL语句
|
我哭了
职务:普通成员
等级:1
金币:0.0
发贴:148
|
#32004/10/24 15:54:11
不太懂。。。
应该看哪里啊?
|
我哭了
职务:普通成员
等级:1
金币:0.0
发贴:148
|
#42004/10/24 15:57:18
是这段吗?
<% ' *** Update Record: construct a sql update statement and execute it
If (CStr(Request("MM_update")) <> "" And CStr(Request("MM_recordId")) <> "") Then
' create the sql update statement MM_editQuery = "update " & MM_editTable & " set " For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2 MM_formVal = MM_fields(MM_i+1) MM_typeArray = Split(MM_columns(MM_i+1),",") MM_delim = MM_typeArray(0) If (MM_delim = "none") Then MM_delim = "" MM_altVal = MM_typeArray(1) If (MM_altVal = "none") Then MM_altVal = "" MM_emptyVal = MM_typeArray(2) If (MM_emptyVal = "none") Then MM_emptyVal = "" If (MM_formVal = "") Then MM_formVal = MM_emptyVal Else If (MM_altVal <> "") Then MM_formVal = MM_altVal ElseIf (MM_delim = "'") Then ' escape quotes MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'" Else MM_formVal = MM_delim + MM_formVal + MM_delim End If End If If (MM_i <> LBound(MM_fields)) Then MM_editQuery = MM_editQuery & "," End If MM_editQuery = MM_editQuery & MM_columns(MM_i) & " = " & MM_formVal Next MM_editQuery = MM_editQuery & " where " & MM_editColumn & " = " & MM_recordId
If (Not MM_abortEdit) Then ' execute the update Set MM_editCmd = Server.CreateObject("ADODB.Command") MM_editCmd.ActiveConnection = MM_editConnection MM_editCmd.CommandText = MM_editQuery MM_editCmd.Execute MM_editCmd.ActiveConnection.Close
If (MM_editRedirectUrl <> "") Then Response.Redirect(MM_editRedirectUrl) End If End If
End If %>
|
缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
|
#52004/10/24 16:13:54
在 Set MM_editCmd = Server.CreateObject("ADODB.Command") 前面加上 Response.Write MM_editQuery Response.end()
然后会输出一段字符串,就是SQL了
|
我哭了
职务:普通成员
等级:1
金币:0.0
发贴:148
|
#62004/10/24 16:43:05
呵呵,是这句吧应该: update admin set Username = 'icry5',Password = 'admin' where Username = 'icry5'
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#72004/10/24 19:56:51
Password是固定词,应该用[]括起来
非常大鱼
|
我哭了
职务:普通成员
等级:1
金币:0.0
发贴:148
|
#82004/10/25 13:19:14
问题解决了!呵呵,谢谢各位高手!原来又是中了Access数据库中保留字的陷阱。。。去掉了俩字母就没事了。 但是有一点不明白的是:数据库名称中使用的是保留字,为什么在当时测试、使用就没有问题,而要过几天后才出现问题呢?
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#92004/10/25 13:26:20
可能在提交时,并没用到保留字,比如没有修改password,而在SQL中不存在password='...'这样语句,一旦你修改密码就出错。
非常大鱼
|
我哭了
职务:普通成员
等级:1
金币:0.0
发贴:148
|
#102004/10/26 0:24:49
不是的!当时制作完了以后,我还刻意的修改了好几遍密码看了看修改提交的过程。当时就没有发现问题。而且以前记得也是中过保留字的陷阱,同样是当时没有问题,过几天以后才突然出现的问题。呵呵....怪了 另外,借此机会还想再请教一下高手,用DW作的动态程序,比如留言板什么的会不会很消耗服务器资源? 如果各位高手有兴趣,可以去小弟的网站给提点意见指导一下。呵呵,第一次作自学的,没有经验,很多地方不懂。
|