各位大侠好,请问关键字 'as' 附近有语法错误如何解决?

aji19810907 2014-01-27 04:30:20
网站使用asp+sqlserver2005

Microsoft OLE DB Provider for SQL Server 错误 '80040e14'

关键字 'as' 附近有语法错误。

/include/RsPage_Class.asp,行 341

RsPage_Class.asp341附近代码:
Case 2 'Sql2005库
'求总记录数
sTotalCount = Conn.Execute("select count(*) from " & sTbName & " where " & sWhere)(0)

'求总页数
If (sTotalCount Mod sPageSize) = 0 Then
sTotalPage = sTotalCount / sPageSize
Else
sTotalPage = Int(sTotalCount / sPageSize) + 1
End If

If sCurPage > sTotalPage Then
sCurPage = sTotalPage
End If

'构造sql
sql = "width tempRecords as ( "
sql = sql & "select " & sColList
sql = sql & ",row_number() over ( order by "
For j = 0 To i '构造order by
sql = sql & sOrderbyArr(0,j) & " " & sOrderbyArr(1,j)
If j <> i Then
sql = sql & ","
End If
Next
sql = sql & " ) as 'RowNumber'"
sql = sql & " from " & sTbName & " where " & sWhere & " ) "
sql = sql & "select " & sColList & " from tempRecords where RowNumber between " & ((sCurPage - 1) * sPageSize + 1) & " and " & (sCurPage * sPageSize)

'取数据
If sTotalCount = 0 Then
rsArr = ""
Else
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open sql,Conn,0,1
rsArr = rs.GetRows
rs.Close
Set rs = Nothing
End If

End Select
...全文
365 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2014-01-27
  • 打赏
  • 举报
回复
width 这个是打错了还是你本来就这样,应该是with吧?
LongRui888 2014-01-27
  • 打赏
  • 举报
回复
另外,由于你写的是vb代码,看不出来 sql语句拼接后的完整语句,所以你可以用sql profiler来跟踪一下,完整的sql语句,贴出来看看
LongRui888 2014-01-27
  • 打赏
  • 举报
回复
在with的左边加一个分号试试: sql = ";width tempRecords as ( " sql = sql & "select " & sColList sql = sql & ",row_number() over ( order by "
發糞塗牆 2014-01-27
  • 打赏
  • 举报
回复
你把整个过程放到sqlserver内部执行完,asp再读取吧,as这个t-sql没问题,但是asp不一定能认得出来

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧