2012-11-28 154 views
0

如果我刪除LIMIT "&PageStart&" , "&PageEnd&",則以下查詢正常工作。我從數據庫中獲取所有數據。但它不適用於LIMIT和這兩個參數。我究竟做錯了什麼?SELECT未按預期工作

Dim Conn,strSQL,objRec 
Set Conn = Server.Createobject("ADODB.Connection") 
Conn.Open "Driver={SQL Server}; Server=Localhost; Database=book-it-fifa;" 
strSQL = "select distinct buchung_id, von, bis, abteilung, veranstalter, THEMA, THEMA_ENABLED " & _ 
    " from RESERVIERUNGRAUM r " & _ 
    "  ,BUCHUNG b " & _ 
    " where r.BUCHUNG_ID = b.ID " & _ 
    " and von >= convert(date, getdate(), 4) " & _ 
    " and von < convert(date, dateadd(day,1, GETDATE()), 4) " & _ 
    " and BIS >= getdate() " & _ 
    " and STORNO is null " 
Set objRec = Server.CreateObject("ADODB.Recordset") 
objRec.Open strSQL, Conn, 1,3 

If objRec.EOF Then 
    Response.write (" Not found record.") 
Else 

'**** Paging/Pagination Calculator ***' 
Dim PageLen,PageNo,TotalRecord,TotalPage,intID 
Dim PageStart,PageEnd 
PageLen = 2 
PageNo = Request.QueryString("Page") 
if PageNo = "" Then PageNo = 1 
TotalRecord = UBound(objRec.GetRows,2)+1 
PageStart = ((PageLen*PageNo)-PageLen) 
PageEnd = PageLen 
If TotalRecord <= PageLen Then 
    TotalPage =1 
ElseIf (TotalRecord Mod PageLen = 0) Then 
    TotalPage =(TotalRecord/PageLen) 
Else 
    TotalPage =(TotalRecord/PageLen)+1 
    TotalPage = Cint(TotalPage) 
End If 

'*** Close Object and Open New RecordSet ***' 
objRec.Close() 
strSQL = strSQL & "ORDER BY von, bis ASC LIMIT "&PageStart&" , "&PageEnd&" " 
objRec.Open strSQL, Conn, 1,3 
+0

會發生什麼? – RonaldBarzell

+0

它也不能正常工作 – Paks

+0

這個問題的另一個版本:http://stackoverflow.com/questions/10387386/equivalent-of-limit-in-t-sql – MatthewMartin

回答

2

SQL Server不支持LIMIT。你可以閱讀更多關於它在這裏:當您只使用PageStart作爲極限

http://channel9.msdn.com/Forums/Coffeehouse/102407-SQL-Server-and-LIMIT-clauses-on-SELECT-statements

+0

我該如何重寫它,所以它等於我的選擇查詢 – Paks

+0

我包含的鏈接也有一個解決方法。它看起來像SQL Server支持TOP,這是你的開始。 – RonaldBarzell

+1

SQL Server和** ANSI SQL標準**不具有「LIMIT」.... –