佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 856|回复: 11

请帮我看看哪里出错 (syntax error in Update statement)

[复制链接]
发表于 13-3-2006 09:33 AM | 显示全部楼层 |阅读模式
这是它的 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

%>

请帮帮我,万分谢谢!!!!
回复

使用道具 举报


ADVERTISEMENT

发表于 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 一个吧
回复

使用道具 举报

Follow Us
 楼主| 发表于 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 后还是会有问题?
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 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 | 显示全部楼层
这问题解决了,谢谢大家!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 1-8-2025 01:20 AM , Processed in 0.133840 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表