Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: sql- suche von bereichen mit wildcards

  Alt 26. Nov 2006, 10:03
@oldie: Du darfst von einer Datenbank (nun gut, Paradox ist nur eine kleine Tabellenverwaltung) keine Wunder erwarten. Datenbanken (oder DBMS) sind einfach nur Programme, die Daten ziemlich schnell lesen und schreiben können. Nebenbei können sie auch noch nach bestimmten Kriterien suchen.

Das Suchen kann sehr schnell gehen oder auch nicht. Das hängt dann aber ausschließlich vom Programmierer ab. Du musst deine Tabellenspalten so definieren, das das DBMS auch schnell findet, was Du suchst.

Stell Dir einfach vor, so ein DBMS kann einfach nur sortieren und dann in so einer sortieren Liste schnell Sachen finden. In einer sortierten Liste kann man auch sehr schnell einen Bereich ausfindig machen: Untere Bereichsgrenze suchen, obere Bereichsgrenze suchen, und alles was dazwischen ist, gehört eben in den Bereich.

Mit deiner Suchanfrage muss aber das DBMS alle(!) Datensätze durchlaufen und bei jedem Datensatz prüfen, ob die Bedingung erfüllt ist. Das ist mehr als suboptimal, sondern der Tod einer jeden Datenbankapplikation. Sofern deine Daten nur aus ein paar hundert Datensätzen bestehen, Du viel Zeit hast und/oder alleine mit dem Programm arbeitest, ist das egal.

Du solltest deine Tabelle so erweitern, das die letzten vier Stellen der Auftragsnummer in einer gesonderten Spalte sind. Dann indexierst Du diese Spalte (a.k.a. mit der Datenbankoberfläche einen Sekundärindex erstellen) und dann kannst Du sehr elegant mit:
select * from Tablename where SubTrAuftrNr Between '0000and '0999' auf die Datensätze zugreifen (SubTrAuftrNr ist die oben erwähnte neue Spalte).

Grundsätzlich ist es keine gute Idee, Information, nach der man suchen will, in irgendwelchen Daten zu verwursten.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat