AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi afterscoll wie in datenmodul anwenden??
Thema durchsuchen
Ansicht
Themen-Optionen

afterscoll wie in datenmodul anwenden??

Offene Frage von "LingNeu"
Ein Thema von LingNeu · begonnen am 10. Apr 2010 · letzter Beitrag vom 15. Apr 2010
Antwort Antwort
Seite 1 von 3  1 23      
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#1

afterscoll wie in datenmodul anwenden??

  Alt 10. Apr 2010, 14:50
Datenbank: dataweb TurboDB • Zugriff über: über Datasource
Hallo delphifreunde,

habe ein Datenmodul (dm), indem sich meine Datenbanken und die Tabellen, sowie andere Komponenten befinden.

Im Hauptprogramm kann ich sehr einfach darauf zurückgreifen.
z.B.
dm.Tabelle.Edit;
dm.Tabelle.Post; usw..

Nun benötige ich unbedingt ein Ereignis auf eine Tabelle und zwar Tabelle.AfterScroll()
Diese kann ich zwar jetzt im Datenmodul (dm.) erstellen aber die notwendigen Aktionen müssen im Hauptprogramm stattfinden
z.B. aktualisieren einer Änderung in Feldern. Ich kann nicht auf eine Aktion in der Datenbank reagieren, außer die üblichen Dinge, wie Append, Insert, Delete usw über einen DBNavigator

Wie schaffe ich das jetzt, das ich auf ein DB-Ereignis reagieren kann, oder muss ich doch wieder alle Hundert Komponenten aus dem Datenmodul in das Hauptprogramm verfrachten
Vielleicht kann mir jemand helfen.
Ich kann mir auch nicht vorstellen, das ich nur dieses Problem habe. Leider konnte ich aber über die Suche keine passenden Infos bekommen.
Danke für JEDEN Hinweis!
ciao
LingNeu
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: afterscoll wie in datenmodul anwenden??

  Alt 10. Apr 2010, 14:57
Unsauber: Über Kreuzverbindung und Methode der Form nehmen
Sauber: Über DataSource auf der Form:

DataSource.DataSet.on...
Markus Kinzler
  Mit Zitat antworten Zitat
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: afterscoll wie in datenmodul anwenden??

  Alt 10. Apr 2010, 15:24
hallo mkinzler,
danke für Deine Info. Du hast sicherlich in gewisser Weise Recht.
Ich frage mich nur, warum gibt es dann das Datamodul. Man kann die Sache nur dann verwenden, wenn man keine Ereignisse von Komponenten verwenden will und der Nutzen einer Modulisierung ist futsch.
Wahrscheinlich ist diese Sache auch deshalb so unbeliebt - oder täusche ich mich da.
Schade, nun kann ich doch wieder die vielen Compos auf die Hauptform legen - das wars wohl - oder?

Schöne Grüsse
LingNeu
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: afterscoll wie in datenmodul anwenden??

  Alt 10. Apr 2010, 15:25
Die DataSource gehört auch auf das Formular und nicht auf das Datenmodul. Und damit kannst du es ja machen!
Markus Kinzler
  Mit Zitat antworten Zitat
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: afterscoll wie in datenmodul anwenden??

  Alt 10. Apr 2010, 15:44
Danke nochmals. Das mache ich jetzt auch so. Andere Lösungen scheint es nicht zu geben um Code und Componenten leicht auszulagern. Die Funktionen habe ich alle schon in einer eigenen Unit.
Leider habe ich allerdings insgesamt über 100 solcher Datasources und Tabellen - uff
ciao
LingNeu
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: afterscoll wie in datenmodul anwenden??

  Alt 10. Apr 2010, 15:51
Aber wohl nicht auf einer Form, oder?
Markus Kinzler
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: afterscoll wie in datenmodul anwenden??

  Alt 10. Apr 2010, 15:54
Zitat von LingNeu:
...Leider habe ich allerdings insgesamt über 100 solcher Datasources und Tabellen...
Und da willst du uns was von Übersichtlichkeit erzählen, wunderbar.

Was bringt es, wenn man alles schön in einem Datamodul zusammenfasst, dieses aber aus allen Nähten platzt?

Eine andere Möglichkeit wäre das Modularisieren von Formularinhalten über Frames. Dann sind zwar die Datenbankkomponenten wieder mit auf dem Formular bzw. Frame aber jedes Frame enthält nur das, was es benötigt. So kann dann eine wirkliche Übersichtlichkeit entstehen. Will man das jetzt noch datenbankunabhängig machen, muss man eben noch eine Zwischenschicht mehr einführen. Aber ich halte nichts von diesem "ich lagere alles in ein Datenmodul aus".
  Mit Zitat antworten Zitat
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: afterscoll wie in datenmodul anwenden??

  Alt 10. Apr 2010, 18:18
@omata,
du hast mir das "Leben" gerettet!!
Eine superidee. Da sieht man halt die Profis. Ich bin noch immer am Delphi-Lernen. Aber das mit dem Frame - da wäre ich nicht draufgekommen.
DANKE !!!
ciao
LingNeu
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#9

Re: afterscoll wie in datenmodul anwenden??

  Alt 10. Apr 2010, 18:20
Zitat von LingNeu:
Leider habe ich allerdings insgesamt über 100 solcher Datasources und Tabellen - uff
Das ist natürlich ganz schlecht.
Du kannst aber die Tabellen (hoffentlich hast du auch Queries) nach Themen geordnet auf mehrere Datenmodule verteilen.
Man sollte auch Programmcode vom Formular in die Datenmodule verlagern.
Beispiel, im Formular steht häufig Code wie dieser:
Delphi-Quellcode:
dm.TabelleAuftrag.Open;
dm.QueryAktiveBestellungen.Open;
dm.QueryBestelltyp.Open;
...
Man verlagert diesen Code jetzt in das Datenmodul:
Delphi-Quellcode:
procedure TMeinDatenModul.OpenAllDatasets;
begin
  TabelleAuftrag.Open;
  QueryAktiveBestellungen.Open;
  QueryBestelltyp.Open;
  ...
end;
Im Formular braucht man dann nur noch dm.OpenAllDatasets aufrufen.
Beim Schliesen gilt natürlich das Gleiche.
Das ist aber erst der Anfang.
Man sollte versuchen einen grossen Teil der "Bussiness-Logik" in die Datenbankmodule zu verschieben.
  Mit Zitat antworten Zitat
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: afterscoll wie in datenmodul anwenden??

  Alt 10. Apr 2010, 18:31
@sx2008
danke für deine Hinweise.
Genauso habe ich das auch mit dem Datenmodul gemacht und dort die grundsätzlichen DB-Sachen durchgeführt. Leider schaffte ich aber keinen Event (z.B. AfterScroll) abzufragen und diesen Event dann im Hauptprogramm zu benutzen
Nun habe ich eine Lösung mit den Frames. Der Hammer ist die Möglichkeit, im Frame und in der Hauptform Ereignisse abzufragen
ciao
LingNeu
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 17:33 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