Der Fehler entsteht aber nicht durch das
DB-Grid, sondern durch die Menge der Daten. Da gab's schon immer 'nen Flaschenhals.
Statt
BDE einfach mal
ADO und den
ODBC-Treiber von Windows für
Paradox probieren (für Paradoxversionen 3.x, 4.x und 5.x)? Der Treiber ist bei meinem Windows 10 von Haus aus dabei (und war er bei älteren Windosen auch schon - führt halt nur ein Schattendasein, da keiner das wirklich zu nutzen scheint.)
Der Connectionstring könnte dann in etwa so aussehen:
Code:
Provider=MSDASQL.1;Persist Security Info=False;Data Source=InDerODBCVerwaltungVergebenerName;
Oder 'ne DSN-Datei anlegen, die könnte dann in etwa so aussehen:
Code:
[
ODBC]
DRIVER=Microsoft
Paradox Driver (*.db )
UID=admin
UserCommitSync=Yes
Threads=3
SafeTransactions=0
ParadoxUserName=admin
ParadoxNetStyle=4.x
ParadoxNetPath=C:\Temp
PageTimeout=5
MaxScanRows=8
MaxBufferSize=2048
FIL=
Paradox 5.X
DriverId=538
DefaultDir=C:\Temp
CollatingSequence=
ASCII
Oder direkt per Verbindungszeichenfolge:
Code:
Driver={Microsoft
Paradox Driver (*.db )}; DBQ=c:\temp;DriverID=26
SQLDriverConnect (Paradox-Treiber) SQLConfigDataSource (Paradox-Treiber)
Eventuell mal in der
BDE-Configuration mit
BLOBS TO CACHE = -1
probieren, ob das Problem dann weggeht. Eventuell aber auch in der TDataBase-Komponente (soweit sie genutzt wird) bei Params mal
BLOBS TO CACHE=-1
angeben.
Der Fehler tritt halt auf, wenn mehr Blobfelder / Sätze mit Blobfeldern gelesen werden, als der Zahl, die bei BLOBS TO CACHE angegeben wurde, entspricht.
Invalid BLOB handle in record buffer
Eventuell bei der Benutzung der Komponente TQuery die Eigenschaft RequestLive auf True setzen. In der Delphi 7-Hilfe steht da einiges zu, schau mal nach, ob das eine Option sein könnte. (Bin mir nicht ganz sicher, aber der Blobcache wird dann umgangen, so dass das Problem damit eigentlich nicht (mehr) auftreten sollte.)