Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datensatz angenähert finden (https://www.delphipraxis.net/19366-datensatz-angenaehert-finden.html)

Hansa 1. Apr 2004 21:03


Datensatz angenähert finden
 
Hi,

es geht um folgendes: ich suche einen Datensatz, weiß aber nicht ob er Nr. 10000 hat oder 11000. Weiß ich die Nr. genau und gebe diese manuell ein, so finde ich sie direkt.

Wenn ich sie nun knapp verfehle, will ich vor und zurück blättern. Das geht ja auch mit next und prior, sofern ich alle Datensätze zur Verfügung habe. Für eine einzige Nr. ist das aber überflüssig. Wie machen das die anderen hier ? Soll ich einen Index auf das Suchfeld legen, ein zweites Datset oder wie ? Es geht um eine praktikable Lösung.

kiar 1. Apr 2004 22:14

Re: Datensatz angenähert finden
 
vielleicht so:
SQL-Code:
select *
from Tabelle
where Nr 10000 between 11000
weis nicht ob der syntax stimmt , aber between sollte das sein was du suchst.

raik

bevor mir robert wieder um die ohren haut
SQL-Code:
beetween 10000 And 11000
:mrgreen:

Basilikum 1. Apr 2004 22:27

Re: Datensatz angenähert finden
 
ein Lösungsansatz wäre:
SQL-Code:
SELECT * FROM tabelle ORDER BY ABS(<eingegebene Nummer> - Nr) ASC LIMIT 10
so erhält man die 10 der Nummer am nächsten kommenden Datensätze

Hansa 1. Apr 2004 23:05

Re: Datensatz angenähert finden
 
hmmm, hmmm. Suche ich das ? :gruebel: Nee. 8) Habe ich mich verhauen und 10.000 ist in Wirklichkeit 99.999, was dann ? Intuitiv würde ich sagen : lege einen Index auf das Feld. Wer weiß also mehr ?

kiar 1. Apr 2004 23:38

Re: Datensatz angenähert finden
 
hallo hansa,

was willst du mit einem Index erreichen.

ein index dient dazu nur eindeutige werte in deiner db zu zulassen, oder die Suchgeschwindigkeit zu erhöhen.

gehen wir von deinem letzten beispiel aus findest du den fehler schneller, wenn du einen Index drauflegst :mrgreen:

der index sollte dir hier auch nicht helfen.

raik

Hansa 1. Apr 2004 23:48

Re: Datensatz angenähert finden
 
Zitat:

Zitat von kiar
...ein index dient dazu nur eindeutige werte in deiner db zu zulassen, oder die Suchgeschwindigkeit zu erhöhen...der index sollte dir hier auch nicht helfen.

Und nun ? Wie weiter ? Mit next und prior dauert das Ganze merklich länger. Was ist zu tun ?

kiar 1. Apr 2004 23:51

Re: Datensatz angenähert finden
 
versuche doch deine Suche mit anderen Begriffen weiter einzuschränken.

wenn du wie immer nur stückchenweise mit deinem problem rausrückst,
kann dieser thread noch eine weile dauern :mrgreen:

mfg

raik :dance:

edit: oder lege doch einen erweiterten index fest, der über mehrere Table felder geht;

Hansa 2. Apr 2004 00:01

Re: Datensatz angenähert finden
 
Was ist denn mit dem 2. Dataset ? Das erste für direkte Eingabe und das zweite für alles über ein Feld (Spalte) ?

Hansa 2. Apr 2004 12:37

Re: Datensatz angenähert finden
 
Ich habe jetzt ein DBgrid für Kontrollzwecke auf die Form gelegt. Der positioniert sich aber immer auf die erste Zeile. Wenn ich die Nr. direkt eingebe und das DBgrid bzw. Dataset wäre auf diesen Datensatz positioniert, tja das wärs dann wohl. Der Rest wäre Kleinkram.


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