Hallo,
FIB plus war ein Maß unbestritten.
Yep. Ich kann mich nurmehr düster an Diskussion in grauer Vorzeit erinnern aus den Konsequenz der Einbau dieser Kompatibiltätsfunktionen war. Der Usercode wird nicht migriert. In dem Eck holt man noch keine Speed ohne tatsächlich umzubauen.
Das muss sich auch mal rentieren. Die Speed einer Anwendung hochzutreiben heißt noch lange nicht, dass wenn alle gegen einen Server arbeiten davon profitieren. Deswegen ist die Devart mit Standardeinstellungen so mal im Mittel ganz gut.
Ich habe 10.3.3 noch nicht installiert und IBDAC nicht in Verwendung und damit keine Sourcen. Es stellt sich die Frage ob nicht über Interfaces Leerimplementierungen resp. ergänzende 'hereinvererbt werden' damit alles gleich bleibt und andererseits in den Komponenten Abläufe automatisch werden angestoßen. Devart hat sich in dem Eck sehr viel angetan.
Ich denke mich düster zu erinneren, dass Devart den Close vom Windows abfangen, ihre Arbeit erledigen und dann selbst absetzen. (Sicher bin ich mir nach Jahren nicht mehr, ob der Zusammenhang dort war). So etwas in die Richtung ist es vermutlich. Hätte es folgerichtig in der Vergangenheit auch schon sein müssen. Das verwundert mich persönlich genauso.
@Rolf Frei + MichaelT: Ja, es kommt aus einer Migration von FIBPlus nach IBDAC...allerdings ist dieser Code schon seit XE7 dort und funktioniert bis einschliesslich 10.2 problemlos. Warum, frage ich mich jetzt allerdings selber! Aber solange der Compiler und vor allem der Kunde nicht meckert, fällt es halt nicht auf (und die dahintersteckende Funktion wird täglich so um die 30-50mal aufgerufen - das würde bei Nichtfunktion natürlich schnell auffallen).
Auch der 10.3.3-Compiler meckert ja nicht, interpretiert aber anscheinend den Code intern jetzt anders und das führt beim Ausführen des Programms zu besagtem "Fehler". Damit sind wir wieder beim with...und: irgendetwas muss sich am/im Compiler ja geändert haben, sonst würde jetzt ja nicht dieses "Problem" aufgetaucht sein. Ich habe für mich jedenfalls den Schluss gezogen, dass ich with in Zukunft nicht mehr verwenden werde - auch wenn ich es persönlich übersichtlicher finde...
Des weiteren habe ich die Komponente TIBCSQL mal gegen eine TIBCQuery getauscht und es beim with belassen (es heisst dann aber ExecSQL und nicht mehr ExecQuery) -> damit funktioniert auch die procedure mit with einwandfrei.
Hartmut