Einzelnen Beitrag anzeigen

Benutzerbild von Domo Sokrat
Domo Sokrat

Registriert seit: 14. Mai 2003
Ort: Wehrheim / Ts.
235 Beiträge
 
Delphi 2006 Professional
 
#21

Re: Gleichzeitiger Zugriff auf eine "nicht-echte-Datenb

  Alt 19. Aug 2004, 07:18
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.
Michael Seeger
Vergesst nicht: Es wird überall nur mit Wasser gekocht
ZEOSLib - Admin-Team
ZeosLib-Forum
  Mit Zitat antworten Zitat