AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Abfrage über DataSource von TQuery
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Abfrage über DataSource von TQuery

Ein Thema von TomDooley · begonnen am 17. Nov 2004 · letzter Beitrag vom 19. Nov 2004
Antwort Antwort
TomDooley

Registriert seit: 26. Jan 2004
124 Beiträge
 
#1

SQL Abfrage über DataSource von TQuery

  Alt 17. Nov 2004, 15:42
Hallo

Irgendwie geht's mir etwas so

Ich greife mit TTable auf eine Paradoxtabelle zu. Die Tabelle wird dabei bereits vorgefiltert. Ich möchte nun über die "verbleibenden" Einträge eine SQL-Abfrage laufen lassen und das Resultat entsprechend weiterverarbeiten. Dafür hätte ich eine TQuery-Komponente vorgesehen, mit der ich auf eine TDataSource-Komponente zugreife, die wiederum als DataSet das Table-Objekt enthält... Leider funktioniert bei mir keine SQL Abfrage über die DataSource von Query (DataSource von Query ist die TDataSource-Komponente).

Hmm.. ich hoffe jemand versteht was ich meine, bzw. kann mir weiterhelfen.

es dankt und grüsst

Tom
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: SQL Abfrage über DataSource von TQuery

  Alt 17. Nov 2004, 15:52
Hi TomDooley,

das klappt so nicht!

Zitat von OH:
Die Eigenschaft DataSource gibt die Datenquelle an, aus der die aktuellen Feldwerte für die gleichnamigen Parameter der SQL-Anweisung extrahiert werden.

property DataSource: TDataSource;

Beschreibung

Mit DataSource werden die Parameter einer Abfrage automatisch mit den aktuellen Feldwerten einer anderen Datenmenge initialisiert. Den Parametern mit den Namen der Felder dieser Datenmenge werden die entsprechenden Feldwerte zugewiesen. Die anderen Parameter, deren Namen nicht übereinstimmen, erhalten keine Werte. Sie müssen im Quelltext gesetzt werden. Wenn beispielsweise die Eigenschaft SQL der Abfragekomponente die folgende SQL-Anweisung und die in DataSource angegebene Datenmenge ein Feld mit dem Namen CustNo enthält, wird der Feldwert des aktuellen Datensatzes dieser Datenmenge für den Parameter CustNo verwendet.
Das heißt, sowas ist z.B. für Master-Detail-Beziehungen nützlich, aber du kannst nicht eine Abfrage auf diese Datenmenge machen!
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#3

Re: SQL Abfrage über DataSource von TQuery

  Alt 17. Nov 2004, 17:00
Man kann aus Deinem Text nicht entnehmen, was Du genau machen willst, daher 3 Lösungswege:

1. Du zeigst Deinem Anwender die Daten aus dem Table an und führst zusätzlich eine SQL-Abfrage über den Gesamtdatenbestand aus die dem Table-Filter + evtl. weiteren Einschränkungen unterliegt und arbeitest damit intern weiter

2. Du arbeitest von Anfang an nur mit einer SQL-Abfrage, die Deinen Wünschen entspricht

3. Du kannst auch evtl. mit VIEWS arbeiten (falls Du das benötigst). Sprich der Anwender bekommt bei der Aktion immer nur den definierten VIEW zu sehen, das Programm arbeitet intern aber mit spezialisierteren SQL-Abfragen z.B. wenn man auf einem Eintrag im View klickt (entspricht ungefähr 1.)

Gruß Igotcha
  Mit Zitat antworten Zitat
TomDooley

Registriert seit: 26. Jan 2004
124 Beiträge
 
#4

Re: SQL Abfrage über DataSource von TQuery

  Alt 17. Nov 2004, 17:29
Also ich probiere mich noch ein wenig detaillierter auszudrücken:

Ursprünglich hatte ich drei Komponenten 2x TTable und 1x TDataSource. Das erste Table-Objekt (Detail) hat über das DataSource-Objekt eine Master-Detail-Beziehung zum zweiten Table-Objekt (Master). In der Master-Tabelle sind verschiedene Filter gesetzt. Ich möchte nun über die Daten der beiden Tabellen einen Report generieren.
Über die in der Detail-Tabelle vorhandenen Daten (nicht alle Daten sind "verfügbar" da in der Master-Tabelle Filter gesetzt sind) möchte in nun eine SQL-Abfrage ausführen und daraus den Report generieren.

Ich hätte mir nun vorgestellt, dass ich eine TQuery-Komponente benötige, über dessen DataSource-Property ich auf auf eine TDataSource-Komponente zugreife, die wiederum über ihr DataSet auf meine (eingeschränkte) Detail-Tabelle zugreift.

Wie Stevie geschrieben hat wird das so aber wohl nicht funktionieren...
  Mit Zitat antworten Zitat
TomDooley

Registriert seit: 26. Jan 2004
124 Beiträge
 
#5

Re: SQL Abfrage über DataSource von TQuery

  Alt 18. Nov 2004, 16:30
Hallo, ich nochmal...

Eigentlich läuft meine Frage darauf hinaus, ob es überhaput möglich ist, über TTable oder TDataSource-Komponente eine SQL-Abfrage zu machen...


es dankt und grüsst

Tom
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

Re: SQL Abfrage über DataSource von TQuery

  Alt 19. Nov 2004, 09:07
Meiner Meiung nach nicht in dem Sinne, dass du "SELECT blabla FROM TDataSource.DataSet ..." oder so machst.
Du könntest es aber anders realisieren, indem du "manuell" über diese Datenmenge iterierst und die Datensätze, die deiner Bedingung genügen in ein Delphi-Referenz durchsuchenTClientDataSet schiebst. Wenn die Datenmenge bloß als Ansicht vorgesehen ist, bist du dann fertig. Wenn du allerdings Sätze ändern möchtest, dann musst du diese Sätze aus dem ClientDataSet wieder in die Datenbank zurückführen, was noch etwas Aufwand erfordert.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  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 03:05 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