AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi FDConnection automatsch disconnecten bei Ausführung
Thema durchsuchen
Ansicht
Themen-Optionen

FDConnection automatsch disconnecten bei Ausführung

Ein Thema von fisipjm · begonnen am 2. Aug 2023 · letzter Beitrag vom 3. Aug 2023
Antwort Antwort
Seite 1 von 2  1 2      
fisipjm

Registriert seit: 28. Okt 2013
251 Beiträge
 
#1

FDConnection automatsch disconnecten bei Ausführung

  Alt 2. Aug 2023, 09:16
Hi,

ich hab ein Thema, dass mich immer mal wieder in meinem Workflow hindert und wollte mal wissen, ob ihr vielleicht eine Idee habt, wie man das lösen kann

Ich habe in einem Projekt eine FDConnection und ein paar Querys auf eine SQLite Datenbank. So weit, so unspektakulär. Da ich öfter mal mit LiveBindings hantiere, führe ich die Querys öfter schon in der Entwurfsphase aus. Das führt dann natürlich dazu, dass die FDConnection aktiviert wird. Wenn aber die FDConnection verbunden ist, befindet sich die SQLite DB im exklusiven Zugriff. Das führt dann dazu, dass mir das Programm jedes Mal crasht, weil die DB bereits exklusiv geöffnet ist.
Frage, kann ich der IDE irgendwie mitgeben, dass sie die Connection der Verbindung trennen soll, wenn ich das Programm ausführe?

Danke schon mal

Gruß
PJM
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.014 Beiträge
 
Delphi 12 Athens
 
#2

AW: FDConnection automatsch disconnecten bei Ausführung

  Alt 2. Aug 2023, 11:49
Dafür gibt es bei der Connection das Property ConnectedStoredUsage

Für die Query wäre das analog ActiveStoredUsage
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.150 Beiträge
 
Delphi 12 Athens
 
#3

AW: FDConnection automatsch disconnecten bei Ausführung

  Alt 2. Aug 2023, 12:21
Das regelt doch nur, ob das Connected/Active in der DFM gespeichert wird.

Wenn beim Debuggen die Form geladen ist, dann bleibt es doch dennoch aktiv?



Bei anderen DBKomponenten nennt sich sowas z.B. gerne Connection.Options.DisconnectedMode (am Beispiel von Devart),
wo die Connection sich nur kurz beim Execute connected und sich anschließend sofort wieder disconnected.

Aber auf die Schnelle sehe ich hier sowas nicht.
https://docwiki.embarcadero.com/Libr...ion_Properties
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.014 Beiträge
 
Delphi 12 Athens
 
#4

AW: FDConnection automatsch disconnecten bei Ausführung

  Alt 2. Aug 2023, 13:26
Das regelt doch nur, ob das Connected/Active in der DFM gespeichert wird.
In der Tat - Frage falsch verstanden...
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: FDConnection automatsch disconnecten bei Ausführung

  Alt 2. Aug 2023, 17:51
Wie wäre es, für die Entwicklung eine andere DB für den Entwurf zu verwenden?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: FDConnection automatsch disconnecten bei Ausführung

  Alt 2. Aug 2023, 21:03
Das Problem nervt mich auch bei SQLite.
Als Workaround setze ich eine ähnliche Lösung ein, wie von Union vorgeschlagen.
Da ich immer im Debugmodus entwickle habe ich das für mich über Compiler-Directiven gelöst und einer zweiten Datenbank.
Wenn du die "echte" Version kompilierst musst du halt umschalten auf Release, die FDConnection deaktivieren und "Alle Projekte erzeugen" ausführen.
Da ich das generell so handhabe passt dieser Workflow für mich bzw. habe ich mich an diesen Ablauf gewöhnt.

Delphi-Quellcode:
    DM.FDConnection1.Params.Clear;
    WITH DM.FDConnection1.Params DO
    BEGIN
      Add( 'DriverName=SQLITE' );
      Add( 'DriverID=SQLite' );
{$IFDEF DEBUG}
      Add( 'Database=' + ExtractFilePath( ParamStr( 0 ) ) + 'Kanban_Board_Debug.db' );
{$ELSE}
      Add( 'Database=' + ExtractFilePath( ParamStr( 0 ) ) + 'Kanban_Board.db' );
{$ENDIF}
    END;
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)

Geändert von juergen ( 2. Aug 2023 um 21:09 Uhr) Grund: Ergänzt, dass ich mich an diesen Ablauf gewöhnt habe
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.150 Beiträge
 
Delphi 12 Athens
 
#7

AW: FDConnection automatsch disconnecten bei Ausführung

  Alt 2. Aug 2023, 21:13
Im Designer hilft das nichts.
Aber du kannst im Designer die Design-Datenbank einstellen und das Connected nicht speichern lassen
und dann zur Laufzeit im Code die eigentliche Connection einstellen.


Alternativ könnte man sich via OTA vielleicht ins Starten des Prozesses/Debuggers einhängen (bzw. ganz einfach ins PreBuild oder PostBuild), dort die im Designer geöffneten Forms und darauf die Connections durchlaufen und die disconnecten.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
618 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: FDConnection automatsch disconnecten bei Ausführung

  Alt 3. Aug 2023, 07:40
Ich habe eigene Komponenten für den Datenzugriff. Also Query und Table und Connection sind gekapselt.
Query und Table haben zur Laufzeit kein Interesse an einer lokal rumliegenden Connection auf dem Form. Die wird beim Laden rausgeschmissen und sich beim globalen Connection Manager mit einer passenden versorgt.
Liegt irgendwo eine Connection rum die zur Designzeit aktiv war, ist die zur Laufzeit auch automatisch inaktiv.

Ab einer bestimmten Programmgröße wird es sinnvoll alles so Zentral wie möglich zu verwalten. Fängt man damit gleich beim ersten form an, hat man später nicht doppelte arbeit.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
fisipjm

Registriert seit: 28. Okt 2013
251 Beiträge
 
#9

AW: FDConnection automatsch disconnecten bei Ausführung

  Alt 3. Aug 2023, 10:28
Im Designer hilft das nichts.
Aber du kannst im Designer die Design-Datenbank einstellen und das Connected nicht speichern lassen
und dann zur Laufzeit im Code die eigentliche Connection einstellen.


Alternativ könnte man sich via OTA vielleicht ins Starten des Prozesses/Debuggers einhängen (bzw. ganz einfach ins PreBuild oder PostBuild), dort die im Designer geöffneten Forms und darauf die Connections durchlaufen und die disconnecten.
Das hört sich bisher von allen Lösungsvorschlägen für mich nach dem mit der besten Usability an. Sollte ich das hinbekommen, werde ich das Paket entsprechend veröffentlichen und hier linken. Aktuell leider keine Zeit dafür. Danke für die vielen Ideen.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.468 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: FDConnection automatsch disconnecten bei Ausführung

  Alt 3. Aug 2023, 10:38
Eventuell hilft hier GExperts weiter:
GEperts -> Configuratin -> Experts -> Set Components Property

Bei diesem Experten kann man Komponenten + Properties konfigurieren, die beim Speichern eines Projekts / Formulars auf einen bestimmten Wert gesetzt werden sollen. Das nicht ganz das, was Du suchst, denn diese Properties werden bei jedem Abspeichern gesetzt. Aber gerade bei Connections, die man eigentlich nie aktiv abspeichern will, ist das praktisch.

Voreingestellt sind TAdoConnection.Connected, TDatabase.Connected und TDataSet.Active, die alle auf False gesetzt werden. Diese Liste könnte um FDConnection.Connected erweitert werden.
Thomas Mueller
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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