webForumDet fria alternativet

Sökning i Delphi

9 svar · 289 visningar · startad av BGM

BGMMedlem sedan maj 200113 inlägg
#1

Hej

Staffan Berg föreslog att jag skulle ställa frågan här

Hur gör man för att skapa en sökning på en siffra som inte finns i något data fält.

Säg att Du har ett fält F.r.o.m där du skrivit 1 och ett annat fält T.o.m. där du skrivit 100, nu vill du finna nr 23 som då skall finnas i denna post mellan 1 – 100. du kan ha flera poster med på ett liknade sätt ex 22 – 123456, eller 10- 30 osv och man skall finna alla de som innehåller just detta tal 23.

Tacksam för svar

Bo-Göran M

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Du, jag begriper ingenting. T.ex. varifrån får du 23?

Beskriv vilka tabeller du har, ge exempel på datainnehåll och vilket resultat du förväntar dig av din fråga.

LaspMedlem sedan juli 200012 980 inlägg
#3

Vad du säger ! är att du vill finna alla poster där From är mindre än 23 och samtidigt skall TOM vara större än det sökta?
Är det rätt uppfattat?

BGMMedlem sedan maj 200113 inlägg
#4

Alldeles riktigt.

För att slippa skriva in samtliga tal i en serie vill jag endast skriva in första och sista siffran i den serie jag får.

BGM

LaspMedlem sedan juli 200012 980 inlägg
#5

Då är jag säker på att LarsG kan ge dig ett bra svar.
Du vill alltså skicka in ett värde och finna alla poster där from är mindre än eller lika med OCH tom är större än eller lika med det inskickade värdet.

spangoMedlem sedan juni 20008 205 inlägg
#6

Jag hann före ;)
SELECT foo FROM bar WHERE baz BETWEEN 1 AND 100 borde göra susen.

BGMMedlem sedan maj 200113 inlägg
#7

får inte rätt

Sorry, men jag får inte koden att fungera som det borde, Jag vill ha reda på om det sökta värdet ligger mellan foo och baz.

Om jag har 1 till 100
20 till 200
och sökes 110 skall jag endast hitta 20 till 200.

BGM
PS eller gör jag hellt fel och tänker gallet. DS :birp

LarsGMedlem sedan dec. 200012 464 inlägg
#8

Hur ser frågan ut nu?

Vilka datatyper har kolumnerna?

BGMMedlem sedan maj 200113 inlägg
#9

I Delphi componenten SQl´s SQL skrev jag

SELECT foo FROM bar
WHERE
baz
BETWEEN
9 and 9

Utan rätt resultat.

I knappen vill jag skriva så här:

procedure TForm1.Button1Click(Sender: TObject);
var
D : Smallint ; // Sökt Nr
begin
Query1.Close;

D:=StrToInt(Edit1.Text);
Query1.Params[0].AsInteger := D;
Query1.Open;
// rap_KonkursS.Preview;
end;

Nu blir detta fel men jag har inte kommit ditt än, vad jag vill ha är något så häri SQL:

SELECT foo FROM bar
WHERE
baz
BETWEEN
(=:D)

Där smallint eller longint, vad som kan vara enklast i denna sökning.

BGM

LarsGMedlem sedan dec. 200012 464 inlägg
#10

SQL-satsen borde vara

SELECT <dinaKolumner>
FROM <dinTabell>
WHERE :D BETWEEN
<fromColumn> and <toColumn>

med lämpliga substitutioner.

Sen verkar det mer vara ett problem hur detta ser ut i delphi (vilket jag inte har en aning om).

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)