Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zahlenbereich vergleichen (https://www.delphipraxis.net/17855-zahlenbereich-vergleichen.html)

Albi 10. Mär 2004 17:22


Zahlenbereich vergleichen
 
Hallo alle zusammen,

ich stehe vor einem Problem, wo ich keine Lösung finde. Ich habe 2 Tabelle (Paradox), in der einen stehen die PLZ und in der anderen die ID aus der PLZ-DB, die die eindeutige Beziehung zu den PLZ herstellen. So nun gebe ich über 2 Edits einen Bereich der PLz ein und suche die aus der Plz-DB raus. Soweit ist es ja einfach aber nun möchte ich die passenden Einträge aus der 2 DB heraussuchen und anzeigen.

Wenn ich genau die PLz treffe die in der 2 DB drinstehen werden mir die auch anzeigt aber wenn nicht ergib die Abfrage Null.

Ich habe es mit einer Schleife versucht aber ohne jeden Erfolg.

INC-Man 11. Mär 2004 11:56

Re: Zahlenbereich vergleichen
 
Hallo Albi,

kannst du was zum Aufbau deiner Dateien sagen?
Besteht auf der Datei mit den Idents ein Index?
Hast Du es schon mit einem SetRange versucht?
Wie greifst Du auf die Datenbank zu? (BDE oder ?)

Bis dann INC-Man

Robert_G 11. Mär 2004 12:29

Re: Zahlenbereich vergleichen
 
Wenn es sich auf diesen Thread von dir bezieht, dann:

SQL:
SQL-Code:
SELECT PLZ_Tab.PLZ
      ,Adr_Tab.Adresse
      ,Adr_Tab.Name
      ,Adr_Tab.Vorname
FROM  DeineTabelle  Adr_Tab
      ,DeinPLZTabelle PLZ_Tab
WHERE PLZ_Tab.ID = Adr_Tab.ID And
       Cast(PLZ_Tab.PLZ As Number(5))
         Between :i_MinPLZ And :i_MaxPLZ
In Delphi:

Delphi-Quellcode:
With Query Do
Begin
  SQL.Text :=
    'SELECT PLZ_Tab.PLZ' + #10 +
    '     ,Adr_Tab.Adresse' + #10 +
    '     ,Adr_Tab.Name' + #10 +
    '     ,Adr_Tab.Vorname' + #10 +
    'FROM  DeineTabelle  Adr_Tab' + #10 +
    '     ,DeinPLZTabelle PLZ_Tab' + #10 +
    'WHERE PLZ_Tab.ID = Adr_Tab.ID And' + #10 +
    '      Cast(PLZ_Tab.PLZ As Number(5))' + #10 +
    '        Between :i_MinPLZ And :i_MaxPLZ';
  //  Statement parsen, damit die Variablen erkannt werden
  Prepared := True;
  // Übergabe der Werte für die 2 Variablen
  With Params Do
  Begin
   ParamByName('i_MinPLZ').AsInteger := StrToInt(edtMinPLZ.Text);
   ParamByName('i_MaxPLZ').AsInteger := StrToInt(edtMaxPLZ.Text);
  End;
  // Ausführen...
  Open;
 
  While not Eof Do
  Begin
    // tu was ...
    Next;
  End;
End;
Nachtrag: "Cast(PLZ as Number(5))" bewirkt, dass die PLZ als eine 5-stellige Zahl behandelt wird.
"between" funktioniert auch mit Buchstaben (das Ergebnis würde hier keinen Sinn ergeben)

DP-Maintenance 11. Mär 2004 12:38

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Object-Pascal / Delphi-Language" nach "Datenbanken" verschoben.
Paradox? -> Datenbank ;-)

Albi 14. Mär 2004 08:16

Re: Zahlenbereich vergleichen
 
Es handelt sich dabei um den gleichen Hintergrund. Ich habe die Abfrage und schreibe diese in die Listview und dann das Ergebnis der Listview in die txt um um diese dann als vorlage für Serienbriefe zu nehmen aber ohne Ort und Plz sieht es schlecht aus.

Ich habe das Problem erst mal provisorisch gelöst indem ich nur nach einer PLz suchen lasse. Ich werde jetzt aber selbstverständlich den Code von Dir ausprobieren.

Vielen Dank.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:46 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