主题:  删除SQL语句应如何写?

秋千

职务:普通成员
等级:1
金币:0.0
发贴:160
注册:2000/11/6 16:23:52
#12002/3/2 13:54:15
<%
dim delid,name,pass
delid=trim(request("id"))
name=trim(request.form("name"))
pass=trim(request.form("pwd"))
set conn=server.createobject("adodb.connection")
conn.open "Provider=Microsoft.jet.oledb.4.0;Data Source=" & Server.MapPath("mydata.mdb")
set rs=server.createobject("ADODB.recordset")
rs.Open "select * from pwd", Conn, 1, 2
if name=rs("name") and pass=rs("pwd") then
set rs1=server.createobject("ADODB.recordset")
rs1.Open "delete * from ly where id = "&delid,conn,1,2
response.redirect "delok.asp"
else
response.redirect "notuser.asp"
end if
%>
-----------------------------------------
IE中提示如下:Microsoft JET Database Engine 错误 '80040e14'

语法错误 (操作符丢失) 在查询表达式 'id =' 中。

/liuyan/delcl.asp, 行12



I''MAD

职务:普通成员
等级:8
金币:11.0
发贴:9502
注册:2001/9/16 20:00:53
#22002/3/2 14:43:32
你的SQL没写错,是数据库问题。
<%
' *** Delete Record: declare variables

if (CStr(Request("MM_delete")) <> "" And CStr(Request("MM_recordId")) <> "") Then

MM_editConnection = MM_bb_STRING
MM_editTable = "bbs"
MM_editColumn = "fid"
MM_recordId = "" + Request.Form("MM_recordId") + ""
MM_editRedirectUrl = "defalut.asp"

' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If

End If
%>
<%
' *** Delete Record: construct a sql delete statement and execute it

If (CStr(Request("MM_delete")) <> "" And CStr(Request("MM_recordId")) <> "") Then

' create the sql delete statement
MM_editQuery = "delete from " & MM_editTable & " where " & MM_editColumn & " = " & MM_recordId

If (Not MM_abortEdit) Then
' execute the delete
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
%>
<%
set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_bb_STRING
Recordset1.Source = "SELECT * FROM bbs"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 3
Recordset1.Open()
Recordset1_numRows = 0
%>

编辑历史:[这消息被Hmily编辑过(编辑时间2002-03-02 14:43:42)]


秋千

职务:普通成员
等级:1
金币:0.0
发贴:160
注册:2000/11/6 16:23:52
#32002/3/2 14:58:30
是数据库的什么问题???



I''MAD

职务:普通成员
等级:8
金币:11.0
发贴:9502
注册:2001/9/16 20:00:53
#42002/3/2 15:14:16
数据库的命名不能有保留字段,中文名等,还有就是你删的时候是不是前一个页面没有传递值过来,或是一个错误的值。



5D荣誉斑竹

职务:普通成员
等级:3
金币:10.0
发贴:1480
注册:2002/1/15 11:01:54
#52002/3/2 18:24:34
不是数据库的问题。
rs1.Open "delete * from ly where id = "&delid,conn,1,2
根本写错了.delete 不能这样用!

strSQL = "delete * from ly where id = " & delid
conn.ExeCute strSQL



I''MAD

职务:普通成员
等级:8
金币:11.0
发贴:9502
注册:2001/9/16 20:00:53
#62002/3/2 21:33:10
不会吧,UD自动生成的一般怎么说也不会出错,除非其它原因。比如说他改了源码。



5D荣誉斑竹

职务:普通成员
等级:3
金币:10.0
发贴:1480
注册:2002/1/15 11:01:54
#72002/3/3 1:15:36
他的代码应该不是生成的。
你贴的这个倒一看就是UD的产物。



I''MAD

职务:普通成员
等级:8
金币:11.0
发贴:9502
注册:2001/9/16 20:00:53
#82002/3/3 13:04:56
呵。。。那我也没办法喽,我注重的是操作和速成。源码也不是太懂,一看就晕。。。
用久了UD自然也会手熟了,一般出错的机会较少。