Guten Morgen zusammen,
sitze gerade vor dem Probleme eine Suche für ein Intranet neu zu schreiben. Diese basiert auf dem Windows Indexdienst, der auf einem Windows Server 2008 läuft. Habe dafür dann eine ASP.NET WVC 2 Anwendung erstellt und soweit alles gecodet. So frage ich bisher den Index ab, was auch wunderbar funktioniert:
Code:
Public Function GetQueryString() As String
Dim QueryString As String = "SELECT Rank, DocTitle, Filename, Path, VPath,
Url, Size, Write, Characterization" _
& " FROM SCOPE()" _
& " " & GetWhereClause() _
& " " & GetOrderClause() _
'& " " & GetLimitClause()
Return QueryString
End Function
' und irgendwo dann...
_Connection = New OleDb.OleDbConnection()
_Connection.ConnectionString = "Provider=MSIDXS.1;Integrated Security .='';Data Source='System'"
_Connection.Open()
' Hier nun die Abfrage
Dim Command As IDbCommand = _Connection.CreateCommand()
Try
Command.CommandText = _QueryStringBuilder.GetQueryString()
Dim Reader As IDataReader = Command.ExecuteReader()
GenerateSearchResults(Reader)
Finally
Command.Dispose()
End Try
Sind allerdings sehr viele Ergebnisse im Pool ists natürlich sehr blöd, alle Ergebnisse anzuzeigen. Daher wollte ich ein LIMIT einbauen, welches aber nicht funktioniert, daher ist die Methode GetLimitClause auskommentiert. Ebenso funktioniert auch kein SELECT TOP 10...
Fehlermeldung wenn ich LIMIT verwende:
Code:
Falsche Syntax in der Nähe von "LIMIT". Es wurde "end-of-file, ',', ';'" erwartet. SQLSTATE=42000
Fehlermeldung wenn ich SELECT TOP 10 verwende:
Code:
Falsche Syntax in der Nähe von "10". Es wurde "',', '.', FROM" erwartet. SQLSTATE=42000
So, nun habe ich mir auch online einiges durchgelesen, aber leider null dazu gefunden. Vielleicht kann mir ja einer von euch weiterhelfen, wie ich denn die
Query beschränken kann!?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)