diff --git a/src/Core/Comments.vb b/src/Core/Comments.vb index d2b70e8..6d23798 100644 --- a/src/Core/Comments.vb +++ b/src/Core/Comments.vb @@ -207,7 +207,7 @@ Namespace Spotlib End If - WorkLoad = Spotz.CreateWork(lFirst, lLast) + WorkLoad = Spotz.CreateWork(lFirst, lLast, 100000) WorkTotal = WorkLoad.Count If WorkTotal < 1 Then diff --git a/src/Core/Headers.vb b/src/Core/Headers.vb index a44f3e0..5444468 100644 --- a/src/Core/Headers.vb +++ b/src/Core/Headers.vb @@ -171,7 +171,7 @@ Namespace Spotlib WorkCnt = 0 SUbTotal = 0 - WorkLoad = Spotz.CreateWork(lFirst, lLast) + WorkLoad = Spotz.CreateWork(lFirst, lLast, 100000) WorkTotal = WorkLoad.Count WorkCounter = WorkTotal diff --git a/src/Core/Protocol.vb b/src/Core/Protocol.vb index 5dd573e..2981339 100644 --- a/src/Core/Protocol.vb +++ b/src/Core/Protocol.vb @@ -584,7 +584,7 @@ Namespace Spotlib End Function - Friend Shared Function CreateWork(ByVal sFirst As Long, ByVal sLast As Long) As List(Of NNTPWork) + Friend Shared Function CreateWork(ByVal sFirst As Long, ByVal sLast As Long, ByVal sMax As Long) As List(Of NNTPWork) Dim xWork As NNTPWork Dim WorkCol As New List(Of NNTPWork) @@ -600,7 +600,16 @@ Namespace Spotlib TotalMSG = (sLast - sFirst) + 1 - If TotalMSG < 1 Then Return New List(Of NNTPWork) + If TotalMSG > sMax Then + + TotalMSG = sMax + sLast = sFirst + (sMax - 1) + + Else + + If TotalMSG < 1 Then Return New List(Of NNTPWork) + + End If If TotalMSG > FastPacket Then FastPos = sFirst + (TotalMSG - FastPacket) diff --git a/src/Core/Provider.vb b/src/Core/Provider.vb index 3d76f6a..609cf0c 100644 --- a/src/Core/Provider.vb +++ b/src/Core/Provider.vb @@ -3,6 +3,7 @@ Imports System.Data.Common Imports DataVirtualization Imports System.Diagnostics + Namespace Spotlib Public Class SpotProvider @@ -27,6 +28,9 @@ Namespace Spotlib Private _SortOrder As String = "asc" Private _SortColumn As String = "rowid" + Public Parms As iWorkParams + + Public Property SortOrder() As String Get Return _SortOrder @@ -161,13 +165,15 @@ Namespace Spotlib Debug.Print("LoadRange: " & CStr(startIndex)) - Dim MaxResults As Integer = 5000 '' TODO: CInt(Param.MaxResults) + + Dim MaxResults As Integer = CInt(Parms.MaxResults) + If MaxResults <= 0 Then MaxResults = -1 ' Oude setting If CacheQueryCount < 1 Then CacheQueryCount = -1 If ((_RowFilter = Spotz.DefaultFilter) Or (Len(_RowFilter) = 0)) Then - CacheQueryCount = 999999999 '' TODO: CInt(Param.DatabaseFilter) + CacheQueryCount = CInt(Parms.DatabaseFilter) End If End If @@ -194,12 +200,12 @@ Namespace Spotlib Dim sQ As String - Throw New NotImplementedException() + 'Throw New NotImplementedException() If Not Spots.IsSearchQuery(_RowFilter) Then - sQ = CreateQuery("asc", "rowid", MaxResults, sOffset, CountQuery) + sQ = CreateQuery(SortOrder, SortCol, MaxResults, sOffset, CountQuery) Else - sQ = CreateSearchQuery(0, "asc", "rowid", MaxResults, sOffset, CountQuery) + sQ = CreateSearchQuery(Parms.DatabaseMax, SortOrder, SortCol, MaxResults, sOffset, CountQuery) End If lPosIndex = 4 @@ -338,6 +344,13 @@ Namespace Spotlib End If If sQ.Contains("[SN:DATE]") Then sQ = Strings.Replace(sQ, "[SN:DATE]", CStr(fDate()), 1, , CompareMethod.Binary) + If sQ.Contains("[SN:NEW]") Then + If _RowNew > 1 Then + sQ = Strings.Replace(sQ, "[SN:NEW]", Convert.ToString(_RowNew), 1, , CompareMethod.Binary) + Else + sQ = Strings.Replace(sQ, "[SN:NEW]", Convert.ToString(Parms.DatabaseMax + 1), 1, , CompareMethod.Binary) + End If + End If Dim SelectID As String = "rowid" Dim SelectTable As String = "spots" @@ -361,7 +374,7 @@ Namespace Spotlib If (MaxResults < 1) Or (SortCol = "rowid" And SortOrder.ToLower = "desc") Then sQ = sPrefix & SelectTable & sQ & RowSort & sOffset Else - sQ = sPrefix & SelectTable & " WHERE " & SelectID & " IN (SELECT " & SelectID & " FROM " & SelectTable & sQ & " ORDER BY " & SelectID & " DESC" & " LIMIT " & MaxResults & ") " & RowSort & sOffset + sQ = sPrefix & SelectTable & " WHERE " & SelectID & " IN (SELECT " & SelectID & " FROM " & SelectTable & sQ & " ORDER BY " & SelectID & " DESC LIMIT " & MaxResults & ") " & RowSort & sOffset End If Debug.Print("SQL Query: " & sQ) diff --git a/src/My Project/AssemblyInfo.vb b/src/My Project/AssemblyInfo.vb index 9fb824b..fbeb5ef 100644 --- a/src/My Project/AssemblyInfo.vb +++ b/src/My Project/AssemblyInfo.vb @@ -4,9 +4,9 @@ Imports System.Reflection - + - + 'Imports System 'Imports System.Reflection diff --git a/src/Spotlib.vbproj b/src/Spotlib.vbproj index 82d7249..2726434 100644 --- a/src/Spotlib.vbproj +++ b/src/Spotlib.vbproj @@ -49,12 +49,6 @@ Windows - - Vendor\VirtualData.dll - - - Vendor\Fusenet.dll - @@ -116,6 +110,16 @@ Resources.Designer.vb + + + {abcbd5d0-09a6-45c7-8055-bd04da7b3665} + Fusenet + + + {48e0eb7c-30b3-4a98-89bc-732039bef625} + VirtualData + +