Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi IBDatabase nach kurzzeitigem Verbindungsabbruch (https://www.delphipraxis.net/118046-ibdatabase-nach-kurzzeitigem-verbindungsabbruch.html)

smudo 30. Jul 2008 15:23

Datenbank: Interbase • Version: 6.2 • Zugriff über: IBX

IBDatabase nach kurzzeitigem Verbindungsabbruch
 
Hallo,

ich stehe vor dem Problem, was ich nach einem kurzzeitigen Verbindungsabbruch zum DB-Server tun kann.
  • die DB ist nach dem Programmstart permanent connectet
  • nach einem Verbindungsabbruch kommt bei jedem Transaction-Zugriff die Fehlermeldung "Unable to complete network request..."
  • Tritt der Fehler beim Commit oder Rollback auf, breche ich die Programmausführung ab
  • Tritt der Fehler beim StartTransaction auf, soll die Datenbank neu verbunden werden (x Versuche in einem bestimmten Intervall)
Leider funktioniert letzteres nicht. Es passiert folgendes:

bei IBDataBase.Close:
Zitat:

Unable to complete network request to host "...".
Error writing data to the connection.
Eine vorhandene Verbindung wurde vom Remotehost geschlossen.
bei IBDataBase.Connect
Zitat:

Cannot perform operation -- DB is currently open
Was kann ich sonst tun, um die Verbindung wieder neu aufzubauen?

Vielen Dank im Voraus
René

mkinzler 30. Jul 2008 15:25

Re: IBDatabase nach kurzzeitigem Verbindungsabbruch
 
Setzte mal den Server neu

smudo 30. Jul 2008 15:39

Re: IBDatabase nach kurzzeitigem Verbindungsabbruch
 
Falls du den DataBaseName meinst - das hab ich versucht, die Meldung bleibt die gleiche.

hoika 30. Jul 2008 15:48

Re: IBDatabase nach kurzzeitigem Verbindungsabbruch
 
Hallo,

ich habe das so gelöst, dass ich mir eine Funktion geschrieben habe

etwa so

Delphi-Quellcode:
function jrd_StartTransaction: Boolean;
var
  bError: Boolean;
begin
  Result:= False;

  bError:= True;
  try
    IBDB.StartTransaction;
    bError:= False;

    Result:= True;
  except
  end;

  if bError then
  begin
    IBDB.Connected:= False;
    IBDB.Connected:= True;

    IBDB.StartTransaction;
   
    Result:= True;
  end;
end;

Diese Funktion wird im Code aufgerufen, statt direkt auf die DB-Komponente zuzugreifen.



Heiko

smudo 30. Jul 2008 15:54

Re: IBDatabase nach kurzzeitigem Verbindungsabbruch
 
Ja, genauso ähnlich hab ichs auch, aber wie gesagt. Es kracht schon beim IBDB.Close

mkinzler 30. Jul 2008 15:55

Re: IBDatabase nach kurzzeitigem Verbindungsabbruch
 
Nimm andere Komponenten

smudo 30. Jul 2008 16:03

Re: IBDatabase nach kurzzeitigem Verbindungsabbruch
 
Welche Komponenten können das besser handlen? UIB?
Wenn ich meinem Kollegen sage, wir sollten unser Projekt mal spontan auf andere Komponenten umstellen, fängt der entweder an laut zu lachen oder leise zu weinen. :zwinker:

mkinzler 30. Jul 2008 16:14

Re: IBDatabase nach kurzzeitigem Verbindungsabbruch
 
Die DevART(CoreLabs)-Komponenten können disconnected werden und cachen dann die Inhalte.

smudo 30. Jul 2008 16:22

Re: IBDatabase nach kurzzeitigem Verbindungsabbruch
 
Das klingt so danach, dass ichs mit den IBX-Komponenten vergessen könnte? Nochmal die Frage: Was wäre mit den UIBs?

mkinzler 30. Jul 2008 17:11

Re: IBDatabase nach kurzzeitigem Verbindungsabbruch
 
Kenn ich nicht so


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:22 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz