AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbanken während der Designzeit alle schließen/öffnen
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbanken während der Designzeit alle schließen/öffnen

Ein Thema von MarcRB75 · begonnen am 13. Jan 2023 · letzter Beitrag vom 22. Jan 2023
Antwort Antwort
Seite 1 von 2  1 2      
MarcRB75

Registriert seit: 31. Mai 2018
Ort: Hof/Saale
51 Beiträge
 
Delphi XE2 Starter
 
#1

Datenbanken während der Designzeit alle schließen/öffnen

  Alt 13. Jan 2023, 12:24
Datenbank: ABS • Version: 7.93 • Zugriff über: -
Hallo,

ich habe mal eine generelle Frage:
kann oder könnte man in der Designzeit - z.B. durch eine eigene Komponente - alle Datenbanken und Tabellen schließen?
Also z.B. bei der eigenen Komponente durch eine Property mit True/False?

Oder ist so eine automatische Schließung/Öffnung NUR während der Laufzeit möglich, was ja einfach ist.

Vorab vielen Dank für Eure Hilfe/Antworten.
Marc
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#2

AW: Datenbanken während der Designzeit alle schließen/öffnen

  Alt 13. Jan 2023, 18:36
Was hast du da für ein Szenario, dass du das tun willst?
Eine VCL Anwendung mit einer DBConnection und Datensteuerelementen, die dann gleich im
Designer Daten anzeigen?

Sobald die DB-Connection zu ist, ist auch der Rest der über diese läuft getrennt.
Da ich dein Szenario nicht kenne gehe ich davon aus, dass dir bekannt ist, dass man
die entsprechende Eigenschaft zur Verbindung auf false stellen kann und dann beim
Programmstart auf true...
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.205 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Datenbanken während der Designzeit alle schließen/öffnen

  Alt 14. Jan 2023, 10:52
Es gibt von den GExperts und CNPack die Möglichkeit, vor dem Compilieren, Properties setzen zu lassen - zB Connected=False.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Datenbanken während der Designzeit alle schließen/öffnen

  Alt 14. Jan 2023, 12:11
Komponente ableiten und das Active/Connected-Property auf "stored False".

Das geht auch bei anderen Komponenten.
z.B. TPageControl
ein neues Properte "StartupPage" (die Seite, welche zu Laufzeit immer sichtbar sein soll) und wenn Jenes gesetzt ist, dann beim Anderen das Stored auf False,
und schon kann man im Designer rumwurschtelt und das Programm sieht dennoch immer gleich aus.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (14. Jan 2023 um 12:13 Uhr)
  Mit Zitat antworten Zitat
MarcRB75

Registriert seit: 31. Mai 2018
Ort: Hof/Saale
51 Beiträge
 
Delphi XE2 Starter
 
#5

AW: Datenbanken während der Designzeit alle schließen/öffnen

  Alt 14. Jan 2023, 12:36
Also mein Vorhaben ist eigentlich ganz einfach.
Ich habe 10 Datenbanken und während der Entwicklung kommen immer wieder neue Felder in den Tabelle hinzu oder weg.
Die Struktur der Tabellen verändert sich immer noch, während der Entwicklungsphase.
Und jedesmal muss ich dann wieder alle Datenbanken mit den Tabellen auf connected "false" setzen und nach der Änderung innerhalb der Tabellen muss ich danach wieder die Datenbanken auf connected true und die Tabellen wieder auf active true setzen.

Und dieses egwige hin- und her wollte ich mir erspraren, indem ich eine Komponente schaffe, die während meiner Entwicklung, im Designstatus, dieses An- und Ausschalten übernimmt.
Natürlich kann man das manuell machen.
Keine Frage, aber ich hätte das gerne, wenn man das durch eine eigene, abgeleitete Komponente, die ein Zusatz-Property hat (z.B. DBEinschAusschalten hat) automatisiert.
Marc
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Datenbanken während der Designzeit alle schließen/öffnen

  Alt 14. Jan 2023, 12:46
Beim Erstellen von Komponenten, durch den DFM-Loader, kannst erkennen, wo du bist. (FormDesigner oder im laufenden Programm)

Im Create noch nicht an dir selber, aber im Owner.
Sonst, z.B. im Setter eines Property (wenn dieses Property in der DFM gespeichert wurde) oder im Loaded, am Ende des Ladens aller Komponenten-Property, lässt sich der ComponentState auf csDesigning prüfen.



Dann kann man auch Funktionen (Menuitem im Kontextmenü der Komponente oder als Link, Links unterm Property-Editor) ausführen lassen.

Bei Google suchenDelphi Component Editor
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
MarcRB75

Registriert seit: 31. Mai 2018
Ort: Hof/Saale
51 Beiträge
 
Delphi XE2 Starter
 
#7

AW: Datenbanken während der Designzeit alle schließen/öffnen

  Alt 14. Jan 2023, 13:09
Vielen Dank für Deine Antwort.
So gaaanz ist mir das jetzt nicht klar, wie man während der Designzeit Datenmodule und Formulare in einer Schleife
durchlaufen kann, dann prüft ob Datenbanken+Tabellen vorhanden sind, falls ja dann die Datenbanken+Tabellen ein/ausschalten.
mmmhh... mal ehrlich, geht das überhaupt? Also ich weiß leider nicht, wie ich da ansetzen muss?
Marc
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#8

AW: Datenbanken während der Designzeit alle schließen/öffnen

  Alt 14. Jan 2023, 16:43
Der Code einer Komponente wird ja auch im Designer ausgeführt, z.B. bei visuellen der der Zeichenroutinen.
Damit kann man sich eigene Komponenten schrieben die tun was man will. Bei den Datensteuerelementen der
VCL werden ja auch ABfragen durchgeführt, wärend diese im Designer "aktiv" sind.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Datenbanken während der Designzeit alle schließen/öffnen

  Alt 14. Jan 2023, 17:20
Man könnte in der Tat eine Komponente entwickeln die das ermöglicht. Allerdings ist das nicht so ganz trivial. Zum einen muss man beim Iterieren der Datenmodule, Forms und Frames darauf achten, dass man nur die des eigenen Projekts bzw. der Projektgruppe verarbeitet und nicht noch die der Delphi IDE selbst (Man sollte den Mechanismus also mindestens auf eine oder mehrere dedizierte Verbindungen beschränken.), zum anderen kann man zwar alle (übrigen) Datenverbindungen aus- und hinterher wieder einschalten, aber vielleicht will man das ja auch gar nicht - z.B. die nicht, die vorher auch nicht aktiv waren. Dann gibt es noch die Fälle, bei denen nach dem Ausschalten z.B. ein Datenmodul geöffnet wird bei dem die Verbindungen offen sind. Oder man speichert und schließt ein Datenmodul während die Verbindung aus ist, will aber beim nächsten Öffnen dass sie aktiv ist. Und das sind auch nur die Fälle, die mir spontan dazu einfallen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#10

AW: Datenbanken während der Designzeit alle schließen/öffnen

  Alt 14. Jan 2023, 17:38
Oder einen IDE-Experten schreiben, der sich "nur" das aktuelle Projekt nimmt und dort in allen Formularen, Datenmodulen, ... nach Datenbankkomponenten sucht und die z. B. vor dem Kompilieren schließt und nach dem Kompilieren öffnet.

Machbar müsste auch das sein, einen Aufwandsschätzung würd' ich mir hierzu aber nicht zutrauen.
  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 18:41 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