Ich habe ein Programm, daß 4 Tables hat. Je zwei dienen als Table für alle
User und zwei sind private Tables.
Alle Tables haben nur drei Felder: Integer, String und Memo. Indiziert ist
auf Integer als Primärindex, keine Sekundärindizes. Kein Autoinc.
Mein Testprogramm soll 10000 Sätze an die privaten Tables anhängen, der
Integer wird dabei aus der ALL-Table geholt (Write lock setzen, warten bis
Write lock ging, dann last, letzten Integer lesen, append, Integer:=Wert+1,
posten, write lock freigeben). Diesen Integer trage ich in die User-DB ein.
Das mache ich 10000 mal und fertig.
Die IDs sind dann "registriert" und abgehakt und ein anderer Benutzer kann
die nicht mehr anfordern (sondern bekommt die nächste freie ID).
Dann "übertrage" ich die 10000 IDs in die All-DB indem ich Satz für Satz
die User-DB durchgehe, die ID hole, den Satz mit dieser ID in der ALL-DB
finde und z.B. im String-Feld der ALL-DB irgendwas eintrage.
Dann mache ich emptytable mit den user-db (die sind übrigens exklusiv und
natürlich hat jedes Programm seine eigene User-DB).
Jetzt zum Problem:
Mache ich das lokal oder auf einem NT-Server oder auf NOVELL geht das, so
lange ich das von VERSCHIEDENEN STATIONEN (!) aus mache.
Starte ich beide Programme auf EINEM Rechner (egal wo ich Daten ablege),
dann macht es bei EMPTYTABLE (!!!!) Rumms mit besagter Fehlermeldung. Mehr
gibt es nicht zu der Meldung, mit oder ohne Delphi, mit eingeschalteten
Exceptions.
Nehme ich die Memo-Felder raus, geht es sofort mit 10000. Mit 2000 treten
die Probleme trotz Memo auch (noch?) nicht auf.
Delphi 4 SP3, NT SP4.
Abgerüstetes Testprogramm mit Quellen vorhanden.
Hat jemand Ideen?
Mfg
Jens Hoyer
[email protected]
User und zwei sind private Tables.
Alle Tables haben nur drei Felder: Integer, String und Memo. Indiziert ist
auf Integer als Primärindex, keine Sekundärindizes. Kein Autoinc.
Mein Testprogramm soll 10000 Sätze an die privaten Tables anhängen, der
Integer wird dabei aus der ALL-Table geholt (Write lock setzen, warten bis
Write lock ging, dann last, letzten Integer lesen, append, Integer:=Wert+1,
posten, write lock freigeben). Diesen Integer trage ich in die User-DB ein.
Das mache ich 10000 mal und fertig.
Die IDs sind dann "registriert" und abgehakt und ein anderer Benutzer kann
die nicht mehr anfordern (sondern bekommt die nächste freie ID).
Dann "übertrage" ich die 10000 IDs in die All-DB indem ich Satz für Satz
die User-DB durchgehe, die ID hole, den Satz mit dieser ID in der ALL-DB
finde und z.B. im String-Feld der ALL-DB irgendwas eintrage.
Dann mache ich emptytable mit den user-db (die sind übrigens exklusiv und
natürlich hat jedes Programm seine eigene User-DB).
Jetzt zum Problem:
Mache ich das lokal oder auf einem NT-Server oder auf NOVELL geht das, so
lange ich das von VERSCHIEDENEN STATIONEN (!) aus mache.
Starte ich beide Programme auf EINEM Rechner (egal wo ich Daten ablege),
dann macht es bei EMPTYTABLE (!!!!) Rumms mit besagter Fehlermeldung. Mehr
gibt es nicht zu der Meldung, mit oder ohne Delphi, mit eingeschalteten
Exceptions.
Nehme ich die Memo-Felder raus, geht es sofort mit 10000. Mit 2000 treten
die Probleme trotz Memo auch (noch?) nicht auf.
Delphi 4 SP3, NT SP4.
Abgerüstetes Testprogramm mit Quellen vorhanden.
Hat jemand Ideen?
Mfg
Jens Hoyer
[email protected]
Comment