Avatar billede jesperhansen Nybegynder
07. august 2001 - 21:52 Der er 8 kommentarer og
1 løsning

Bug i TDataset.Filter i D5?

Er der en bug i D5 siden man ikke kan lave følgende med et filter:

Query1.Filter = \'*søgestreng*\'
Den første stjerne bliver ignoreret af delphi og man får altså kun de poster der starter med søgestrengen.

Er der nogen som har alternativer? Jeg er ikke interesseret i en komponent.
Avatar billede martinlind Nybegynder
07. august 2001 - 21:55 #1
Drop Filter og brug LIKE i dit Statement

/Martin
Avatar billede jesperhansen Nybegynder
07. august 2001 - 22:22 #2
Du mener i mit SQL-statement?

Den går nu ikke i dette tilfælde, da jeg skal lave en midlertidig søgning på et eksisterende dataset.

/Jesper
Avatar billede pellelil Nybegynder
07. august 2001 - 22:34 #3
martinlind> Hvis muligt skal LIKE undgåes (hvis man kan lave det sammen med =, > eller <) da LIKE ikke lige er \"det hurtigste\" du kan bede din server om
Avatar billede martinlind Nybegynder
08. august 2001 - 10:14 #4
Det ved jeg men du kan vel ikke bruge * sammen med = ><, eller hva\'

jesperhansen >> så prøv evt. at bruge Locate hvis det bare er en søgning og ikke en begrænsning at dit view
Avatar billede jesperhansen Nybegynder
08. august 2001 - 20:22 #5
Locate returnere kun en post. Den kan derfor ikke bruges. Jeg er ikke sikker på at der umiddelbart er en løsning på problemet.
Jeg håber dog, at fejlen er rettet i Delphi 6. 

Hvis man selv kunne bestemme om man vil se en række f.eks Dataset.Row.Visible := false; kunne man selv lave søgningen. Jeg har bare aldrig stødt på en sådanne option.
Nogen der ved om den findes?
Avatar billede pellelil Nybegynder
08. august 2001 - 20:32 #6
martinlind> Jeg overså den første \"*\", så keg kan godt se efterfølgende at like er den eneste mulighed.

jesperhansen> Nu hvor du alligevel har valgt TQuery frem for TTable (klogt valg), så brug dog en LIKE som martinlind foreslår: select felt1, felt2 from table where felt2 like \"%søgestreng%\"
Avatar billede jesperhansen Nybegynder
08. august 2001 - 22:37 #7
Den søgning jeg skal lave, skal foregå i et allerede hentet dataset.
Hvis jeg bruger SQL-metoden, mister jeg eventuelle data som endnu ikke er skrevet i databasen. OK jeg kunne så lave det i en ny query, men så ville min søgning ikke indbefatte de nye data.

Det som jeg egentligt var interesseret i, var om der er en metode til at få en like-lignende søgning lavet med et filter. Men det er der nok ikke :-( så må jeg bare nøjes med søgningen begynder med felt = \'tekst*\'
Avatar billede martinlind Nybegynder
08. august 2001 - 22:59 #8
Jo det er der, du kan lave din egen Onfilter event også bruge POS eller lignede
Avatar billede jesperhansen Nybegynder
08. august 2001 - 23:47 #9
Tak for Martin det er jo lige det jeg skal bruge :-)

Tak for hjælpen!

/Jesper
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester