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
 
BW19

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

Suche über mehrere Tabellen

  Alt 27. Jun 2007, 12:07
Datenbank: BDE /Paradox • Zugriff über: Query
Hallo

Ich habe folgendes Problem:
Bisher war es in meinem Projekt so das es eine Tabelle gab (Protokoll.db) aber da nach nich mal einem Jahr diese komplett voll war also das Programm streubte sich weiter in die Tabelle zuspeichern da "Datenspeicher voll" ist, so die Meldung.
Musste was neues her:
Nun wird jeden Monat eine Tabelle generiert die sich "Prot_6_2007" die 6 steht natürlich für den Monat und 2007 erklärt sich von alleine. nächsten Monat wird sie dann Prot_7_2007 usw.

Gleichzeitig soll aber das Suchen zwischen einem Bestimmten Zeitraum möglich sein. Der Zeitraum wird eingestellt mit einen DatetimepickerVon und DatetimepickerBis.

Ich hab mir schon soviel kopfzerbrechen darüber gemacht das ich überhaupt nicht weiter komm.
Aus älteren Programmen hab ich die einsicht wie es mit nur Jahren gemacht wurde.
Hier das Quellcodebsp
Delphi-Quellcode:
const
  cs_Protokoll = 'Pr';
  cs_ProtokollTrennzeichen = '_';
  cs_ProtokollAlt = 'glob';
  ci_UnterstesJahr = 1980;
var
  wYear,
  wMonth,
  wDay : Word;

  Present : TDateTime;
begin
  Present:= Now;
  // bei direketer Übergabe von "now" -> Gleitkommafehler
  DecodeDate(Present, wYear, wMonth, wDay);

    // --- begin -- Suche über mehrere Tabellen starten
      for iDateiSuchen := wYear downto ci_UnterstesJahr do
      begin
        {--- Suchen der Protokolle z.B.: Pr_1999 ... Pr_2000 ---}
        sDateiSuchen := cs_Protokoll + cs_ProtokollTrennzeichen + IntToStr(iDateiSuchen) + '.DB';

        if FileExists(PfadErweiternAllgemein(acDataDir_g, 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
        else
          Break;
      end;
Wobei dies ja nachfolziehbar ist. Nur muss sollt das ganze ja auch noch mit Monaten funktionieren und Ich komm einfach nicht drauf wie ich das am einfachsten mache das auch allen fehleingaben vom Bediener richtig behandelt werden...

Ich hatte mal so angefangen :
das ich den Zeitraum eingrenzen kann, wobei mich wDay überhaupt nicht interessiert.
Delphi-Quellcode:
          DecodeDate(DateTimePickerVon.Date, wYearVon, wMonthVon, wDayVon);
          DecodeDate(DateTimePickerBis.Date, wYearBis, wMonthBis, wDayBis);

          sTabNamebis := UpperCase(cs_ProtBuch + cs_ProtBuchTrennzeichen + IntToStr(wMonthBis) + cs_ProtBuchTrennzeichen + IntToStr(wYearBis) +'.DB');
Ich bin am verzweifeln, wie kann ich das am besten und einfachsten realisieren?

Es sollte halt so sein das Nach drücken des Suchen Buttons sich das Programm als erstes die entsprechenden Tabellen zusammen kopiert.

Gruss BW

[edit=sakura] "******HILFFFEEEE******" braucht hier fast jeder der postet... Mfg, sakura[/edit]
B. W.
  Mit Zitat antworten Zitat
 


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 02:15 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