日期:2014-05-16  浏览次数:20931 次

封装函数不成功提示FROM 子句语法错误
在网页中调用是
<%call News(5,40,VipInfo,"求职信息")%>

这里求职信息不带引号会错误,求解?

封装的函数是这样的
'*************************************
'调用文章News(文章行数,标题长度,表名,栏目名)
'row(文章行数):整数型
'TitleLen(标题长度):整数型
'DataFrom(表名):
'DataType(栏目名):
'*************************************
Function News(row,TitleLen,DataFrom,DataType)
dim rs,sql,i
set rs = server.createobject("adodb.recordset")
sql="select top "&row&" * from "&DataFrom&" where type='"&DataType&"' and checkstate=1"
rs.open sql,conn,1,1
if not(rs.eof and rs.bof) then
for i=1 to row
NewsTitle=StrLeft(rs("title"),TitleLen)
response.Write"<div class=""list-item"">"&vbCrLf
response.Write"<h2>"&NewsTitle&"</h2>"&vbCrLf 
response.Write"<p>"&rs("content")&"</p>"&vbCrLf
response.Write"<small>联系人:"&rs("linkman")&"</small><small>联系电话:"&rs("tel")&"</small><small>"&rs("sdate")&"</small>"&vbCrLf
response.Write"</div>"&vbCrLf
rs.movenext
if rs.eof then exit for
next
else
response.Write"暂无信息"
end if
rs.close
set rs=nothing
End Function


错误提示:
错误类型:
Microsoft JET Database Engine (0x80040E14)
FROM 子句语法错误。
/Include/getfunction.asp, 第 13 行


第13行是rs.open sql,conn,1,1

------解决方案--------------------
你需要的参数类型是字符串,当然要带上引号了。

同理,参数中的表名也应该是字符串才对。如下,
<%call News(5,40,"VipInfo","求职信息")%>


不行的话你就调试一下,看看拼出来的sql是什么,拿到数据库里跑一下就知道什么问题了。