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
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, 11: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.871 Beiträge
 
Delphi 12 Athens
 
#2

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

  Alt 13. Jan 2023, 17: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.182 Beiträge
 
Delphi 11 Alexandria
 
#3

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

  Alt 14. Jan 2023, 09: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
43.338 Beiträge
 
Delphi 12 Athens
 
#4

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

  Alt 14. Jan 2023, 11: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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (14. Jan 2023 um 11: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, 11: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
43.338 Beiträge
 
Delphi 12 Athens
 
#6

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

  Alt 14. Jan 2023, 11: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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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, 18:29
ohe je ... ich halt mal wieder. Ich und meine Ideen.

Wäre halt, so finde ich, schon praktisch gewesen.

Wärend der Laufzeit öffene oder schließe ich z.B. auch nur Datenbanken, deren Pfad existiert, die Tabellen einen Tabellennamen haben und dieser gültig ist. Das ist alles nicht so tragisch.

Ich habe auch schon eigene, nach meinen Bedürfnissen Radiogroups, DBComboboxen, DBLookupComboboxen entwickelt.
Auch, dass man StringPropertys und Editoren verwendet.

Also mit "Application.ComponentsCount-1" ... funktioniert das während der Designzeit überhaupt nicht.

for i := 0 to Application.ComponentCount-1 do
begin
Comp :=Application.Components[i];

if Comp is TForm then
begin
Memo.Lines.Add(TForm(Comp).Name);
Application.ProcessMessages;
end;

Naja... es war halt mal wieder so eine verrückte Idee...


Aber trotzdem nochmal vielen Dank an ALLE, die mir geantwortet und sich ihre Gedanken hierzu gemacht haben.
Marc
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

  Alt 15. Jan 2023, 03:13
Im Designer mußt du mit der Form etwas aufpassen.

Die Forms sind nur Dummies und bestehen garnicht wirklich aus "unserem" deklarierten Typen.
Es wird quasi die RTTI (TypeInfo) eines gleichnamigen Types generiert, welcher direkt von TForm abgeleitet ist. (also aufpassen bei vererbten Forms)

Aber dennoch kann man von der aktuellen Komponente via Parent, bzw. den Owner, auf "eine" Instanz der Design-Form und alle Subkomponenten zugreifen, bzw. über Screen (aber besser über die Modul-API der OpenToolsAPI) auf alle aktuellen Forms im Designer.


Zitat:
Application.ComponentCount
Das war so gesehn eh nie ganz richtig, denn da sind nur Forms und andere Komponenten drin, welche Application als Owner besitzen, z.B. weil sie "automatisch" via Application.CreateForm erstellt wurden.
Der FormDesigner benutzt aber einen anderen Owner und sowas war noch nie verboten.

Forms sucht man über Delphi-Referenz durchsuchenScreen, denn dort registrieren sich selbstständig alle TForm-/TCustomForm- und TDataModul-Instanzen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (15. Jan 2023 um 03:32 Uhr)
  Mit Zitat antworten Zitat
TigerLilly

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

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

  Alt 15. Jan 2023, 10:46
Ich glaube, du versuchst ein Problem zu lösen, das du eher hast, weil dein Workflow nicht so recht passt. Wenn sich die DB dauernd ändert und du schon das UI programmierst, ist das suboptimal. Bzw ist das eine Phase, die nicht lange dauern sollte. Ich kenn das auch, aber die Querys einmal zu öfnen und wieder zu schließen ist jetzt nicht der Mörderaufwand. Von den Querys etc Ableitungen zumachen, in der Palette zu installieren etc hingegen schon.
  Mit Zitat antworten Zitat
MarcRB75

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

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

  Alt 22. Jan 2023, 11:28
Im Designer mußt du mit der Form etwas aufpassen.

Die Forms sind nur Dummies und bestehen garnicht wirklich aus "unserem" deklarierten Typen.
Es wird quasi die RTTI (TypeInfo) eines gleichnamigen Types generiert, welcher direkt von TForm abgeleitet ist. (also aufpassen bei vererbten Forms)

Aber dennoch kann man von der aktuellen Komponente via Parent, bzw. den Owner, auf "eine" Instanz der Design-Form und alle Subkomponenten zugreifen, bzw. über Screen (aber besser über die Modul-API der OpenToolsAPI) auf alle aktuellen Forms im Designer.


Zitat:
Application.ComponentCount
Das war so gesehn eh nie ganz richtig, denn da sind nur Forms und andere Komponenten drin, welche Application als Owner besitzen, z.B. weil sie "automatisch" via Application.CreateForm erstellt wurden.
Der FormDesigner benutzt aber einen anderen Owner und sowas war noch nie verboten.

Forms sucht man über Delphi-Referenz durchsuchenScreen, denn dort registrieren sich selbstständig alle TForm-/TCustomForm- und TDataModul-Instanzen.


Ah... Du hast mir wieder etwas Mut gemacht, weiter zu experimentieren. Irgendwie lässt mich mein Gedanke auch nicht wirklich los.
Vielleicht bin ich da irgendwie in der Tat ganz falsch an die Sache rangegangen.
Marc
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:30 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