Da ich grade mal wieder zu kam,
hier mal ein einfaches Beispiel (PostgreSQL) :
SQL-Code:
SELECT repeat('
*', 1200)::VARCHAR(100)
-- Size=100 DataSize=202 Length=100
SELECT repeat('
*', 1200)::VARCHAR
-- Size=8191 DataSize=16384
SELECT repeat('
*', 12000)::VARCHAR
-- Exception
SELECT repeat('
*', 12000)::VARCHAR(20000)
-- Size=20000 DataSize=40002 Length=12000
Wo genau der/die Fehler liegen, kann ich noch nicht sagen.
- die Datenbank kann Längeres
- der DBServer/Treiber sollte es richtig rausgeben (kann's aber nicht prüfen ... wobei pgAdmin aber nicht abraucht)
- die Delphi-Komponente PgDAC hat einmal den Fehler, dass sie 8191 anzeigt (vermutlich eventuell aber dennoch den kompletten String enthält, oder Ihm fehlt die abschließende #0)
- Ob das Delphi-TDataSet auch einen Einfluß hat ... glaube ich nicht, da die Daten-/Speicherverwaltung das DevArt in seiner Ableitung macht und es beim (20000) ja funktioniert
- und zumindestens das Programm (in einem Testprogramm für einen anderen DevArt-Fehler lass ich es grade nochmal prüfen, falls der Kollege reagiert) raucht dann mit vielen Exceptions ab
vermutlich weil Exception im Paint, wo der Dialog ein neues Paint mit neuer Exception auslöst, wodurch ein neues Paint mit neuer Exception ausgelöst, weswegen ein neues ..........
- Aber ob nur der der Fehler im DataSet/Query, im Grid-DataContoler oder im Grid-Paint steckt, konnte ich nicht finden
Weiß nur, dass es beim Query.Open knallt, bzw. wenn mit DisableControls dann eben erst im EnableControls.