Toon posts:

[Delphi] Samenvoegen van parameters *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een probleem met het filteren van een database met behulp van ado, graag het filter gebruiken maar in dat veld moet je het = teken gebruiken, en nu weet ik niet hoe ik de parameters moet samenvoegen??

Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.BFilterClick(Sender: TObject);
var
filterkeuze : string;
filterveld : string;

begin
If EFilter.Text = '' Then
showmessage('Er is niks om te filteren')
ELSE
If Filterbox.Text = 'Filter Keuze' Then
showmessage('kies een veldnaam')
Else
Begin
Filterkeuze := EFilter.Text;
filterveld := Filterbox.text
adotable1.Filter := filterveld=Filterkeuze
end;
end;

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

[Delphi] in topictitel gezet, denk daar voortaan even zelf aan :)

Professionele website nodig?


  • TUX2K
  • Registratie: September 2001
  • Laatst online: 10:13
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.BFilterClick(Sender: TObject);
var
filterkeuze : string;
filterveld : string;

begin
If EFilter.Text = '' Then
showmessage('Er is niks om te filteren')
ELSE
If Filterbox.Text = 'Filter Keuze' Then
showmessage('kies een veldnaam')
Else
Begin
Filterkeuze := EFilter.Text;
filterveld := Filterbox.text
adotable1.Filter := 'WHERE '+filterveld+' = ''"Filterkeuze"';
end;
end;


Niet getest maar zo iets zou het moeten zijn

Verwijderd

Topicstarter
TUX2K schreef op 15 januari 2004 @ 20:19:


Niet getest maar zo iets zou het moeten zijn
bedankt, ik zal hieraan ff prutsen want ik krijg nog steeds een foutmelding |:(

[Error] Delyserunit.pas(460): Missing operator or semicolon (opgelost verder kijken dan mijn neus breed is )

maar nu...

Afbeeldingslocatie: http://213.93.5.164/delphi.jpg

Ik vraag me wel af waarom je where erbij betrekt want die is niet nodig in het filter, je kan toch gewoon zeggen
Delphi:
1
starttijd=11:05:33

????

[ Voor 11% gewijzigd door Verwijderd op 15-01-2004 20:37 ]


  • Delphi32
  • Registratie: Juli 2001
  • Laatst online: 27-05 23:18

Delphi32

Heading for the gates of Eden

Als je op een veld gaat filteren dat een tijd bevat, moet je a. zorgen dat de te filteren waarde als een string opgegeven wordt, dus quotes eromheen, en b. zorgen dat je de correcte regional settings gebruikt.
Dat laatste kan dus voor de nodige ellende gaan zorgen... liever een query met een echte parameter, dan handelt Delphi dat voor je af.

Verwijderd

Topicstarter
Delphi32 schreef op 15 januari 2004 @ 20:37:
Als je op een veld gaat filteren dat een tijd bevat, moet je a. zorgen dat de te filteren waarde als een string opgegeven wordt, dus quotes eromheen, en b. zorgen dat je de correcte regional settings gebruikt.
Dat laatste kan dus voor de nodige ellende gaan zorgen... liever een query met een echte parameter, dan handelt Delphi dat voor je af.
het was een voorbeeld maar de tijd is al als een string opgegeven :)

Verwijderd

Naar mijn idee heb je ook geen 'where' nodig. Je kunt het volgens mij gewoon doen met 'and' en 'or':


code:
1
adotable1.filter := 'Tijd=' + parameter1 + ' AND plaats=' + parameter2;


Dit voorbeeldje is trouwens niet getest, maar zoiets moet het wel worden. Ik dacht zelfs dat de delphi help ook zo'n voorbeeld geeft.

P.S. Mijn parameters in dit voorbeeld zijn trouwens wel strings :)

P.S. 2 Curry als je een topictitel verandert mag je ook best een oplossing geven ;)

Verwijderd

Topicstarter
Ik heb het thanx _/-\o_


Delphi:
1
2
filterveld := Filterbox.text;
adotable1.Filter := filterveld+ ' = ' +Filterkeuze


het ziet er zo gemakkelijk uit 8)7 , maar je moet er eerst opkomen :-)

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Waarom maak je geen gebruik van een Query ipv een Table, met daarop een toegepaste filter?
Een query is veel performanter, aangezien je :
• minder data moet returnen
• Indexen van het DBMS kunt gebruiken.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 15 januari 2004 @ 21:08:
Waarom maak je geen gebruik van een Query ipv een Table, met daarop een toegepaste filter?
Een query is veel performanter, aangezien je :
• minder data moet returnen
• Indexen van het DBMS kunt gebruiken.
Indexen van het DBMS kunt gebruiken ?????? Geen idee waar dit over gaat ????

Dat heb ik ook maar ook de grote DB, en nog ff een vraagje het lukt helemaal met alle velden maar... ik wil graag een functie inbouwen waaruit je kan kiezen om wat je ingeeft weg kan filteren of kan laten zien, nu laat hij alles zien. Ik dacht dat kan makkelijk met =! maar daar komt geen reseltaat en geen fout uit.
ik heb een checkbox ervoor gebruikt.

[ Voor 6% gewijzigd door Verwijderd op 15-01-2004 22:13 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
<> misschien.

Check ook even de Delphi help.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 15 januari 2004 @ 22:13:
<> misschien.

Check ook even de Delphi help.
Thanx _/-\o_
Pagina: 1