AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Suche über mehrere Tabellen
Thema durchsuchen
Ansicht
Themen-Optionen

Suche über mehrere Tabellen

Ein Thema von BW19 · begonnen am 27. Jun 2007 · letzter Beitrag vom 28. Jun 2007
Antwort Antwort
Seite 2 von 2     12   
BW19

Registriert seit: 14. Sep 2005
Ort: Bopfingen
14 Beiträge
 
Delphi 6 Professional
 
#11

Re: Suche über mehrere Tabellen

  Alt 28. Jun 2007, 11:58
DANKE

Delphi-Quellcode:
  with QueryTemp do
  begin
    Active := False;

     DatabaseName := asDataDir;

     SQL.Clear;

      DecodeDate(DateTimePickerVon.Date, wYearVon, wMonthVon, wDayVon);
      DecodeDate(DateTimePickerBis.Date, wYearBis, wMonthBis, wDayBis);



      if ((wYearBis - wYearVon) >= 0) then
      begin
        for iDateiJahr := wYearBis downto wYearVon do
        begin
          if ((iDateiJahr = wYearBis) and ((wYearBis - wYearVon) > 0)) then
          begin
            wMonthBisBerechnung := wMonthBis;
            wMonthVonBerechnung := 1;
          end
          else if (iDateiJahr = wYearVon) then
          begin
            wMonthBisBerechnung := 12;
            wMonthVonBerechnung := wMonthVon;
          end
          else if ((wYearVon = wYearBis) and ((wYearBis - wYearVon) = 0)) then
          begin
            wMonthBisBerechnung := wMonthBis;
            wMonthVonBerechnung := wMonthVon;
          end
          else
          begin
            wMonthBisBerechnung := 12;
            wMonthVonBerechnung := 1;
          end;

          for iDateiMonat := wMonthBisBerechnung downto wMonthVonBerechnung do
          begin
            sDateiSuchen := cs_ProtBuch + cs_ProtBuchTrennzeichen + IntToStr(iDateiMonat) + cs_ProtBuchTrennzeichen + IntToStr(iDateiJahr) +'.DB';
            if FileExists(PfadErweiternAllgemein(asDataDir, True) + sDateiSuchen) then
            begin
              if SQL.Count = 0 then
                SQL.Add('SELECT * FROM "' + sDateiSuchen + '"')
              else
              begin
                SQL.Add('UNION');
                SQL.Add('SELECT * FROM "' + sDateiSuchen + '"')
              end;
            end;
          end;
        end;
      end
      else
      begin
        MessageDlg('Ungültige Datumseingabe', mtError, [mbOK], 0);
        TabellenInEineTabelleKopieren := False;
        sTabelle := '';
        Exit;
      end;
Hoff das is verständlich.....
Mit dem Algo is alles abgedeckt was ich brauche
Das alles passiert in ner Funktion die die verschiedenen Tabellen in eine Temp Tabelle hineinkopiert!

Gruss BW
B. W.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#12

Re: Suche über mehrere Tabellen

  Alt 28. Jun 2007, 12:11
Dann verwende doch UNION ALL, damit die BDE nicht anfangen muss zu sortieren.
Andreas
  Mit Zitat antworten Zitat
BW19

Registriert seit: 14. Sep 2005
Ort: Bopfingen
14 Beiträge
 
Delphi 6 Professional
 
#13

Re: Suche über mehrere Tabellen

  Alt 28. Jun 2007, 14:10
Zitat von shmia:
Dann verwende doch UNION ALL, damit die BDE nicht anfangen muss zu sortieren.
Ja aber genau das soll ja nicht so sein das er alle Tabellen anhängt nur die die relevant sind

Oder meinste was anders?

Gruss BW
B. W.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Suche über mehrere Tabellen

  Alt 28. Jun 2007, 14:13
Bitte erst nachlesen, dann meckern UNION filtert Dubletten automatisch heraus (so wie DISTINCT), während UNION ALL dies nicht tut.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
BW19

Registriert seit: 14. Sep 2005
Ort: Bopfingen
14 Beiträge
 
Delphi 6 Professional
 
#15

Re: Suche über mehrere Tabellen

  Alt 28. Jun 2007, 14:32
O_o

Ich kann und will mich hier nich Battlen mit euch Profis
und meckern tu ich ja nich hat sich ja nur die frage gestellt wieso Union All
weils so wie ichs etz mach funktionierts ja richtig nett

Nachtrag:

Heeee Union All is ja richtig geil gerade nachgelesen in meinem Schlauenbuch

Verwenden Sie das Schlüsselwort UNION, um die Ergebnisse von zwei SELECT-Anweisenungen zu einer Ergebnismenge zu kombinieren. Alle doppelten Zeilen werden aus dem engdgültigen Ergebnis entfernt. Verwenden Sie UNION ALL, um doppelte Zeilen zu bewahren

respekt ^^ erst lesen dann schreiben

Wobei ich dazu sagen muss das es höchstwahrscheinlich keine doppelten geben wird Da in meiner Protokoll-Tabelle 2 Felder sind des eine is ne Einfahrt und das andere ne Ausfahrt beide DateTime und dann noch Das Feld Kartendaten Das den Kompletten spuraufbau einer EC-Karte hat.

Aber sicher ist sicher! Hab das Union All eingefügt zu Entlastung der BDE das natürlich logisch klingt wenn mans weis

Danke ihr seid wiedermal super und ich doof

Aber bin ja lernfähig zumindest hab ihr mich soweit gebracht damit ich nachlese

Gruss BW
B. W.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:27 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