Hi Schnitzel!
Bissi spät, aber ich hoffe, Du bist noch an Hilfe interessiert... Ich arbeite momentan ebenfalls mit den ZEOS 6.1.5 stable (incl. Patch #1) und Firebird 1.5.1 (z. Z. embedded).
Dein Problem mit dieser
Exception kenne ich. Bei mir wird sie ebenfalls beim Disconnect einer TZConnection ausgelöst. Und jetzt kommt's: Aber nur dann, wenn zuvor eine Stored Procedure mit ExecProc ausgeführt wurde, die
keine Werte zurückgibt (z. B. die SP ADD_EMP_PROJ der Employee-Beispieldatenbank von
IB/
FB). Mit Stored Procedures, die Werte zurückliefern gibt's hier keine Probleme.
Nun hab' ich zwei Workarounds anzubieten:
1) Der "Elegante"
Führe StoredProcs, die keine Werte zurückliefern doch einfach in einem TZQuery über das EXECUTE PROCEDURE Statement aus (ExecSQL!) und vergiss für diesen Fall die Komponente TZStoredProc. Mit einem TZReadOnlyQuery müsste es auch klappen, hab's aber bis dato noch nicht probiert.
2) Der "Holzhammer"
Wenn die Datenbank nach Auftreten der
Exception (Fehler -901) nochmals disconnectet wird, dann wird die Verbindung zur
DB ohne Fehler gelöst. Man packt also das Disconnect in einen Try-Except-Block und führt beim Auftreten der
Exception das Disconnect nochmals aus. Ich bin mit dieser Lösung zwar nicht ganz zufrieden, weil ich nicht weiß, was da in welchen falschen Hals kommt, aber es funzt.