AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datasource zur Laufzeit entfernen
Thema durchsuchen
Ansicht
Themen-Optionen

Datasource zur Laufzeit entfernen

Ein Thema von barnti · begonnen am 8. Sep 2003 · letzter Beitrag vom 8. Sep 2003
Antwort Antwort
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#1

Datasource zur Laufzeit entfernen

  Alt 8. Sep 2003, 11:27
Hallo,

ich habe ein Master-Detail-Formular bei dem ich die Inhalte des DBGrids über eine Query und deren Datasource abfrage. Da die Daten mit der Datasource eingeschränkt sind ich aber auch alle Datensätze ohne Master-Detail-Verknüpfung brauche, würde ich gern die Property "Datasource" meiner Query zur Laufzeit entfernen. Meine Idee war es die Daten auf zwei Formularen anzuzeigen. Beim OnClose-, bzw, OnShow-Event habe ich dann folgende Zuweisungen:

Delphi-Quellcode:
procedure TForm.FormShow(Sender: TObject);
begin
  DMKundenForm.QueryHafenplatz.DataSource:= Nil;
end;

procedure TForm.FormHide(Sender: TObject);
begin
  DMKundenForm.QueryHafenplatz.DataSource:= DMKundenForm.DataSourceKunde;
end;
Wird Formular 'normal' angezeigt, werden die Master-Detail-Daten nicht angezeigt. Wird das Formular geschlossen werden die Master-Detail-Daten aus der Query gelesen.

Das ist die Theorie. Leider funktioniert es nicht. Es werden immer die Master-Detail-Daten angezeigt. Weder ein Close-Open noch ein Refresh tun ihr übriges...

Wo ist der Denkfehler? Wie kann ich zur Laufzeit zwischen Master-Detail-und normalen Daten wechseln?

Gruß,

Barnti
  Mit Zitat antworten Zitat
Delphianer

Registriert seit: 19. Feb 2003
Ort: Rossau
149 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

Re: Datasource zur Laufzeit entfernen

  Alt 8. Sep 2003, 11:49
Hallo,

bei einer Master-Detail-Verknüpfung mit Queries wird zusätzlich zur Datasource in der Detail-Query auch das SQL-Statement angepaßt.
Üblicherweise in der Form
.. where ID=:ID
Über die Datasource wird in der Mastertabelle nach einem passenden Feld gesucht, anhand dessen die Detaildatensätze gefiltert werden.
Es sollte eigentlich reichen, das SQL-Statement anzupassen, indem die die betreffende Where-Klausel entfernst oder hinzufügst, meiner Ansicht nach kannst Du sogar die Verkmüpfung zur Datasource bestehen lassen.

Viele Grüße
Lutz
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Datasource zur Laufzeit entfernen

  Alt 8. Sep 2003, 12:00
Hallo,

just in diesem Moment fällt es mir wie Schuppen aus den Haaren !

So ist es! Das habe ich total verpennt!

Danke und Gruß,

Barnti
  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 08:03 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