Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Prism Arbeiten mit Temporär-Query (https://www.delphipraxis.net/60474-arbeiten-mit-temporaer-query.html)

gluglu 7. Jan 2006 13:31

Datenbank: InterBase • Version: 7.5 • Zugriff über: TIBQuery

Arbeiten mit Temporär-Query
 
Hallo !

Ich möchte mein IBQuery1 füllen mit verschieden Daten die aus verschiedenen Select's gewonnen werden, je nach Datum und andere Bedingungen. Wie kann ich Append, oder Delete ausführen auf IBQuery1 ohne auf die jeweilige Tabelle diese Append oder Delete auszuführen.

Ich hatte forgendes for :
Delphi-Quellcode:
with DataModule1.IBQueryCheck do begin
  ...
  SQL.Add('Select * from TABELLE1 where ...');
  ...

  First;
  while not Eof do begin
     ...
     DataModule1.IBQuery1.Append;
     DataModule1.IBQuery1.FieldByName('...').Value := FieldByName('...erstes feld aus Tabelle1').Value;
     ...
     Next
  end;

end;
Wie definiere ich IBQuery1 um dieses zu ermöglichen ? :wall:

sir-archimedes 7. Jan 2006 14:05

Re: Arbeiten mit Temporär-Query
 
Ich würde sagen, dass das so ohne weiteres gar nicht geht. Ein Query-Objekt in Delphi ist immer mit der Datenbank verbunden. Wenn du eine Zeile hinzufügst, wird zu der Tabelle der Datenbank auch eine Zeile hinzugefügt. Falls die Abfrage nicht editierbar ist, kannst du keine Zeilen hinzufügen.

Wenn du ausschließlich Daten anzeigen und nicht ändern möchtest, würde ich dir empfehlen, das mit einem UNION Konstrukt zu lösen:

SQL-Code:
SELECT ID, Beschreibung, Datum FROM Tabelle1 WHERE Datum > '01.01.2005'

UNION ALL

SELECT ID, Beschreibung, Datum FROM Tabelle2 WHERE Datum < '01.01.2005' AND Beschreibung LIKE '%Filter%'
Das zum Beispiel würde dir aus Tabelle1 alle Einträge nach dem 01.01.2005 und aus Tabelle2 alle vor dem 01.01.2005, die auch noch die Bedingung "Beschreibung like '%Filter%'" erfüllen in einem Dataset zurückgeben.

Dann musst du nicht mehr mit Delphi versuchen alles in eine Tabelle zu quetschen.

Allerdings sind die Datasets so nicht mehr editierbar.

Gruß,
Dominik


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz