| |
 | 
 Member
 
 Beiträge: 16
 
 
 | Moin es gibt ja auch viele Gründe, warum Daten sortiert vorliegen sollen
   In diesem Fall soll jede PZN um Eigenschaften ergänzt werden. diese sind wiederum Standabhängig. Alle 2 Wochen gibt es einen neuen Stand der PZN-Definitionen in einer eigenen Tabelle. Diese führe ich in einer Tabelle zusammen, aber nur dann, wenn sich für eine PZN Änderungen ergeben. Um diese der Tabelle Daten zuzuordnen, muss also das Datum und auch der Geltungsstand der PZN berücksichtigt werden. Dazu habe ich mir folgendes Schema ausgedacht mit dem Hintergedanken, beide recht lange Tabellen jeweils mit dem schnellsten Cursor nur einmal durchlaufen zu müssen. Und das ist auch bei großen Tabellen tatsächlich zackig abgearbeitet:
 
 d.Open "daten", CurrentProject.Connection, adOpenForwardOnly, adLockPessimistic  '
 s.Open "stamm_pzn", CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly  '
 d.MoveFirst: s.MoveFirst
 Do
 Select Case True
 Case d!pzn < s!pzn
 s.MoveNext
 If s.EOF = True Then Exit Do
 Case d!pzn > s!pzn
 d.MoveNext
 If d.EOF = True Then Exit Do
 Case Else
 If d![vo-datum] >= s!stand Then
 d!ATC = s!ATC
 d!DDD = s!DDD
 d!Biosim = s!Biosim
 d!BTM = s!BTM
 d.MoveNext
 If d.EOF = True Then Exit Do
 Else
 s.MoveNext
 If s.EOF = True Then Exit Do
 End If
 End Select
 Loop
 
 Ich arbeite aus mehreren Gründen hier ohne Indizierung.
 Und ich wählte die SQL-Variante SELECT INTO, weil ich damit in der Lage bin, bei umfangreichen Datenbeständen unterbrechen und nach dem Sortieren komprimieren zu können.
 Ein Datensatz hat etwa 150 Zeichen.
 
 Ich kann danach ja auch erkennen, dass sortiert wurde, zumindest am Anfang der Tabelle. Aber irgendwo mittendrin ist die Sortierung halt manchmal unterbrochen. Und dann scheitert natürlich der obige Algorithmus.
 
 Die Tabelle Daten wird am Ende auch auf den SQL-Server exportiert und in eine große Tabelle gepackt, anhand der die Endauswertung erfolgt. Es gibt meist viele Wege, die nach Rom führen. Sicher könnte ich auch komplett auf dem SQL-Server arbeiten. Allerdings ist unser Intranet weder schnell noch stabil, so dass ich so viel wie möglich lokal abarbeite. Eigene Tests haben gezeigt, dass lokal mit Access arbeiten, bei limitierten Datenmengen natürlich, schneller ist, wenngleich nicht viel, als mit dem SQL-Server.
 
 Ich vermute das Problem auch eher an anderer Stelle als bei Access.
 
 Gruß
 
 
 |  |
 |