das denkst du ...satmax hat geschrieben:Zu diesem Zeitpunk wir kein einziger dbRLock() ausgeführt, eigentlich nur ein dbSkip().
![Bad Grin :badgrin:](./images/smilies/badgrin.gif)
bei Thema 8999 hab ich doch von meinen Problem in der Xbase++ v1.3x Version erzählt.
wenn wir von locking sprechen beziehen wir und auf die DBF ... und was ist mit dem Index(en) ?
ich habe ja schon mal gesagt das Xbase++ "Dirty Read" anders interpretiert als Cl*pper.
nicht die DBF selbst sondern das locking der/die Index(e) ist der Unterschied.
zusammen mit Cl*pper ? -> NEIN !!!satmax hat geschrieben:Habe das Programm auch schon per UNC gestartet, mit DbeInfo( COMPONENT_DATA, FOXDBE_LOCKMODE , LOCKING_EXTENDED ), immer das gleiche.
btw. schalte mal OPTIMIZE OFF
auch wenn Xbase++ nicht gerade die schnellste Sprache ist, aber dein Performance Problem ist extrem.
wenn dein Server auch weiter M$ Produkte verwendet oder als M$ SQL Server läuft ist das ungünstig
für Xbase++ Anwendungen deren DBF / Index(e) auf dem Server liegen.
Es hört sich nach "Ops Locking" Problemen an wo man zunächst mal die von Alaska empfohlenen SMB1 Eingriffe vornehmen sollte.
und immer ALLE beteiligten PCs runter fahren und neu starten ( Server zuerst )
dann solltest du mit einem kleinen Test Programm ( siehe SMB2 Thread ) mittels dual-fähigen Code feststellen wo du die Unterschiede hast.
***
bei SQL fällt ja die gesamte ISAM Navigation weg. über die API oder ODBC wird im Grunde nur die "Kommunikation" abgewickelt.
pgDBE versucht nun als Xbase++ Wrapper die ISAM Befehle in PostgreSQL Query zu übersetzen und abzusenden.
Navigieren im zurück gegebenen Result Set kann man dann mit normalen pgDBE Befehlen wie SKIP.
die angesprochenen "native" Lösungen stellen dir den Zugriff auf die API sowie eine Source Class zum navigieren zur Verfügung.
weiter Info findest du bei Pablo in seinem Forum http://www.xbwin.com -> Forum
SQLexpress++ nutzt den ODBC Weg und bietet wohl den besten Support
egal für welchen SQL Server man sich entscheidet, es wird die Client Applikation sein deren Geschwindigkeit das ganze bestimmt.
die Xbase++ ISAM Denkweise auf SQL umzustellen zwecks Optimierung wird dann zum Problem solange man SQL nicht kennt.
wie bei anderen Sprachen auch muss man die neuen Funktionen erlernen und wie man die am besten verwendet.