Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Wie zuverlässig bei IBDatabase Connect verhindern? (https://www.delphipraxis.net/158414-wie-zuverlaessig-bei-ibdatabase-connect-verhindern.html)

WoGe 16. Feb 2011 17:06

Datenbank: firebird • Version: 2.0 • Zugriff über: IBX

Wie zuverlässig bei IBDatabase Connect verhindern?
 
Hallo
Wie verhindere ich dauerhaft, das bei IBDatabase im Objectinspector das Häkchen bei connected gesetzt wird?
Ich lade normalerweise aus einem Ini-File Server + Datenbankname
und connecte dann. Da funktioniert auch gut.
Aber, ab und zu setzt sich das Connection-Häkchen automatisch. Wenn ich das Programm dann auf dem Zielrechner einsetze - gibts einen Programmabsturz.

Grüsse
wo

Neumann 16. Feb 2011 17:20

AW: Wie zuverlässig bei IBDatabase Connect verhindern?
 
Das würde mich auch interessieren, habe auch dieses Problem.

Zur Zeit behelfe ich mir damit, dass ich eine ungültigen Dateinamen eintrage. Aber auch das kann man vergessen. Hilft aber, wenn irgendwelche Zugriffskomponenten auf active stehen, dann kommt die Exeption wenigstens bei mir und nicht beim Kunden.

Gruß

Ralf

Ralf Kaiser 16. Feb 2011 17:21

AW: Wie zuverlässig bei IBDatabase Connect verhindern?
 
Bei den GExperts (und auch bei den CNWizards, wenn ich mich recht erinnere) gibt es Experten die es erlauben bestimmte Eigenschaften aller Komponenten vor dem Speichern bzw. vor den Kompillieren auf definierte Werte zu setzen, als z.B. Connectd=false für Datenbank-Komponenten oder Active=false für Tabellen usw.

mjustin 16. Feb 2011 17:23

AW: Wie zuverlässig bei IBDatabase Connect verhindern?
 
Ein Weg wäre die Erstellung einer abgeleiteten Komponenten, die den Wert der Connected Property generell nicht speichert ("stored false") oder SetConnected überschreibt. Nur als Denkanstoss, alternativ kann man einen der Experten in GExperts dazu nutzen, der die Komponentenproperties beim Speichern setzt: http://www.gexperts.org/tour/setcomp...roperties.html

shmia 16. Feb 2011 17:31

AW: Wie zuverlässig bei IBDatabase Connect verhindern?
 
Ich glaube dass sich daran nichts ändern lässt (ausser in der IBDatabase-Komponente selbst).
Bei der ADOConnection habe ich genau das gleiche Problem:
wenn man zur Entwicklungszeit testweise eine Query öffnet wird automatisch auch die ADOConnection (bzw. IBDatabase) geöffnet.
Als Entwickler merkt man das nicht und so gibt es "draussen" immer wieder mal Probleme. :wall:

Ich habe bei mir etwas eingebaut, damit ich zumindest gewarnt werde, falls die Connection schon öffen ist:
Delphi-Quellcode:
procedure TMainDataModule.MainDataModuleCreate(Sender: TObject);
begin
   // Falls die ADO Connection schon verbunden ist, liegt ein Problem vor.
   if ADOCon.Connected then
   begin
      ShowMessage('Warnung: ADOConnection ist schon aktiv !!!');
   end;

   // Connection-Parameter laden
   ....
  ADOCon.Connected := True; // Datenbankverb. öffnen

dataspider 16. Feb 2011 19:47

AW: Wie zuverlässig bei IBDatabase Connect verhindern?
 
Hi,

man könnte ein Private Field z.B. FCanConnect: Boolean deklarieren.
Dann in BeforConnect der IBConnection eine stille Exception:
Code:
if not FCanConnect then
  Abort;
Das sollte eigentlich funktionieren.

Frank

WoGe 16. Feb 2011 23:17

AW: Wie zuverlässig bei IBDatabase Connect verhindern?
 
Vielen Dank,
der Hinweis auf GExperts hat geholfen.
Der entsprechende Experte ist standardmäßig nicht aktiviert, deswegen kannte ich den garnicht.

Grüsse
wo


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:48 Uhr.

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