Bei Delphi.Narium die Vergleiche sind doch falschrum, oder?
Der Startwert muß ja kleiner und nicht größer sein. Und am Ende andersrum.
Hast da wohl recht.
select Bereich from bereiche where StartWert <= DenSucheIch and EndeWert >= DenSucheIch
Oder aber auch:
select Bereich from bereiche where DenSucheIch Between StartWert and EndeWert
Zitat von
freimatz:
Wie kommt ihr darauf, dass es um Daten in einer
DB geht, wir sind hier doch nicht in "Datenbanken".
Die Frage lautete ja:
Zitat von
Schucki:
Ich möchte herausfinden in welche vorgegebenen Bereiche eine beliebige Zahl liegt.
Naja, dass ist genau genug, um nicht zu wissen, um was es genau geht
Es schließt eine Datenbank nicht zwingend aus
Deshalb ja der Hinweis auf MemoryTable ..., ist dann keine Datenbank aber fast sowas wie eine Datenbank
Der Filter dort müsste (wegen himitsus Hinweis) dann eher so aussehen:
Delphi-Quellcode:
MemTable.Filtered := false;
MemTable.Filer := Format('StartWert <= %0:d and EndeWert >= %0:d',[EineZahl]);
MemTable.Filtered := true;
Und der andere Vorschlag von mir könnte dann eher in diese Richtung gehen:
Delphi-Quellcode:
var
sBereiche : String;
iBereiche : Integer;
begin
qry.SQL.Text := 'select Bereich from bereiche where :DenSucheIch Between StartWert and EndeWert';
qry.ParamByName('DenSucheIch').AsInteger := EineZahl;
qry.Open;
iBereiche := qry.RecordCount;
sBereiche := '';
while not qry.EoF do begin
sBereich := Format(', %s',[sBereich,qry.FieldByName('Bereich').AsString]);
qry.Next;
end;
qry.Close;
sBereich := Copy(sBereich,3,Length(sBereich));
end;