查看: 856|回复: 11
|
请帮我看看哪里出错 (syntax error in Update statement)
[复制链接]
|
|
这是它的 error massage:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
line 53 有 error...
请问我以下的 SQL code 哪里出了 error?
<%@ Language=VBScript %>
<%Response.Expires = -1 %>
<%Response.ExpiresAbsolute = Now() - 1 %>
<%Response.AddHeader "pragma", "no-cache" %>
<%Response.AddHeader "cache-control", "private" %>
<%Response.CacheControl = "no-cache" %>
<%
Response.Expires = -1000
Response.Buffer = True
Response.Clear
%>
<!--#include file="logincheck.asp"-->
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>
<%
Dim ChangePro
Set ChangePro = Server.CreateObject("ADODB.Connection")
ConnStr = "DRIVER={Microsoft Access Driver (*.mdb)};pwd=password;"
ConnStr = ConnStr & "DBQ=" & Server.MapPath("db\cust_database.mdb")
ChangePro.Open(ConnStr)
SQLtemp = "SELECT * FROM CustRecords WHERE UserName = '" & Request.Cookies("UserName") & "' "
Set rs = ChangePro.Execute(SQLtemp)
while not rs.eof
If Request.Cookies("UserName") = rs("UserName") AND Request.Form("oldpassword") = rs("UserPassword") AND Request.Form("newpassword1") = Request.Form("newpassword2") then
sql="UPDATE CustRecords SET "
sql=sql & "UserPassword= '" & Request.Form("newpassword2") & "',"
sql=sql & "Email= '" & Request.Form("newemail") & "',"
sql=sql & "Firstname= '" & Request.Form("newfname") & "',"
sql=sql & "Lastname= '" & Request.Form("newlname") & "',"
sql=sql & "Company_Name= '" & Request.Form("newcompanyname") & "',"
sql=sql & "Company_Addr= '" & Request.Form("newcompanyaddr") & "',"
sql=sql & "City= '" & Request.Form("newcity") & "',"
sql=sql & "State= '" & Request.Form("newstate") & "',"
sql=sql & "Postal_Code= '" & Request.Form("newpostal") & "',"
sql=sql & "Country= '" & Request.Form("newcountry") & "',"
sql=sql & "Contact_No= '" & Request.Form("newcontactno") & "',"
sql=sql & "WHERE UserName= '" & Request.Cookies("UserName") & "'"
ChangePro.Execute(sql) <--- line 53
Response.redirect ("updated.asp")
Else
Response.redirect ("incorrect.asp")
End If
rs.MoveNext
Wend
OnError response.Redirect ("incorrect.asp")
rs.Close
ChangePro.Close
set ConnStr = Nothing
%>
请帮帮我,万分谢谢!!!! |
|
|
|
|
|
|
|
发表于 13-3-2006 12:18 PM
|
显示全部楼层
问题在这行:
sql=sql & "Contact_No= '" & Request.Form("newcontactno") & "',"
应该改成
sql=sql & "Contact_No= '" & Request.Form("newcontactno") & "'" |
|
|
|
|
|
|
|

楼主 |
发表于 13-3-2006 05:22 PM
|
显示全部楼层
原帖由 goatstudio 于 13-3-2006 12:18 PM 发表
问题在这行:
sql=sql & "Contact_No= '" & Request.Form("newcontactno") & "',"
应该改成
sql=sql & "Contact_No= '" &a ...
谢谢 goatstudio, 您真内行!!
请问一下这 error message 又是错在哪里呢?
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Field 'CustRecords.Contact_No' cannot be a zero-length string. |
|
|
|
|
|
|
|
发表于 13-3-2006 06:43 PM
|
显示全部楼层
应该是你在DATABASE里用数字型态来定义这个栏位,改成文字型态就OK了吧, 要不就先DIM 成0.......很久没coding了.... |
|
|
|
|
|
|
|

楼主 |
发表于 14-3-2006 10:34 AM
|
显示全部楼层
我将 Allow zero-length 改去 "yes", 但是不能 update 这个 field 的 data, 还将我原本的 data 删除掉...当改去 "no" 时,以上的 error 就出现了...
我也在 form 里做了 validation for each text field, 还是不能!
** datatype 是用 text
头痛了~~~
[ 本帖最后由 conmen80 于 14-3-2006 10:38 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 14-3-2006 03:14 PM
|
显示全部楼层
原帖由 conmen80 于 14-3-2006 10:34 AM 发表
我将 Allow zero-length 改去 "yes", 但是不能 update 这个 field 的 data, 还将我原本的 data 删除掉...当改去 "no" 时,以上的 error 就出现了...
我也在 form 里做了 validation for e ...
栏目名称有再检查一下吗? 如果都确定无误,那很可能就是MDB有问题...重新Create 一个吧 |
|
|
|
|
|
|
|

楼主 |
发表于 14-3-2006 04:05 PM
|
显示全部楼层
原帖由 jnjmami 于 14-3-2006 03:14 PM 发表
栏目名称有再检查一下吗? 如果都确定无误,那很可能就是MDB有问题...重新Create 一个吧
真的没得救了吗?再 create 多一个 MDB 还蛮麻烦的,里面有很多 table... |
|
|
|
|
|
|
|
发表于 15-3-2006 09:59 AM
|
显示全部楼层
原帖由 conmen80 于 14-3-2006 10:34 AM 发表
我将 Allow zero-length 改去 "yes", 但是不能 update 这个 field 的 data, 还将我原本的 data 删除掉...
你在说什么?? 改去 yes 后还是会有问题? |
|
|
|
|
|
|
|

楼主 |
发表于 15-3-2006 11:31 AM
|
显示全部楼层
对~改去 "yes" 后,虽然没出现以上的 error msg,但那个 field 的 data 会从 dbase 里消失掉 -_-,连原本的 data 当 update 后就变空白了。 |
|
|
|
|
|
|
|
发表于 16-3-2006 02:24 PM
|
显示全部楼层
奇怪的现象... 别的 column 会发现同样的事情吗? |
|
|
|
|
|
|
|
发表于 16-3-2006 06:39 PM
|
显示全部楼层
原帖由 conmen80 于 15-3-2006 11:31 AM 发表
对~改去 "yes" 后,虽然没出现以上的 error msg,但那个 field 的 data 会从 dbase 里消失掉 -_-,连原本的 data 当 update 后就变空白了。
你可以先 copy table 去新的名字, 改 Allow zero-length = yes, 然後清除 table, 再從新的 table copy -> paste  |
|
|
|
|
|
|
|

楼主 |
发表于 16-3-2006 09:10 PM
|
显示全部楼层
|
|
|
|
|
|
| |
本周最热论坛帖子
|