Filter gebruiken in Delphi 5

Pagina: 1
Acties:

  • marenk_vos
  • Registratie: Augustus 2001
  • Laatst online: 23-07 13:21
Hoe bouw ik een filter op een Delphi Table waarbij ik 2 kolommen met elkaar ga vergelijken:

Mijn code zoals ik hem gemaakt heb is het volgende,,, p.s. deze code werkt dus niet maar geeft wel een beeld wat ik wil:

datamodule1.bestel.Filter:='vervallen=false and artikelcod='''+artnr+''' and aantalbest > aantalontv';

De kolom vervallen is een boolean kolom, de kolom artikelcod is een string en aantalbest en aantalontv zijn numerieke kolommen.

Ik wil geen SQL query gebruiken,,,,

Dell XPS 17 Intel i7 2630 Nvidia GT555 3Gb Hd1: OCZ Vertex 2 SSD 60 GB Hd2: 500Gb


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:40

Creepy

Tactical Espionage Splatterer

Op dinsdag 19 februari 2002 10:10 schreef marenk_vos het volgende:
datamodule1.bestel.Filter:='vervallen=false and artikelcod='''+artnr+''' and aantalbest > aantalontv';
Haakjes gebruiken??
code:
1
datamodule1.bestel.Filter:='(vervallen=false) and (artikelcod='''+artnr+''') and (aantalbest > aantalontv)';

Mocht dat niet werken, dan kan je altijd nog het onfilterrecord event afvangen.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • marenk_vos
  • Registratie: Augustus 2001
  • Laatst online: 23-07 13:21
Als ik het laatste stukje weglaat (kolom > kolom) werkt het filter wel.

met of zonder haakjes maakt niks uit,,,, Hij geeft de melding OPERATION NOT APPLICABLE in EDBengine

Is het uberhaupt wel mogelijk om 2 kolommen te vergelijken in een filter op een delphi table ??

Dell XPS 17 Intel i7 2630 Nvidia GT555 3Gb Hd1: OCZ Vertex 2 SSD 60 GB Hd2: 500Gb


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:40

Creepy

Tactical Espionage Splatterer

Hmm.. heb dat nog nooit geprobeerd.. maar dan denk ik van niet.. dat wordt dan toch de onfilterrecord event afvangen. Daarin heb je meer controle over hoe en wat er gefilterd wordt.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Uit de help:
Filter expressions on remote SQL tables and on client datasets support field comparisons. For example:

Field1 > Field2

Field comparisons are not supported against local tables (Paradox, dBASE, Access, FoxPro).
Gewone TTable ondersteund die Field comparison dus waarschijnlijk niet (tenzij je bijv. InterBase/SQL Server/Oracle gebruikt). M.a.w. zelf doen met OnFilterRecord.

  • marenk_vos
  • Registratie: Augustus 2001
  • Laatst online: 23-07 13:21
Oke,,, het wordt dus de onfilter event,,,

En wat moet ik daar dan in zetten voor code,,, ik kan me daar nog niet helemaal een voorstelling maken

Dell XPS 17 Intel i7 2630 Nvidia GT555 3Gb Hd1: OCZ Vertex 2 SSD 60 GB Hd2: 500Gb


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:40

Creepy

Tactical Espionage Splatterer

The following example shows how to use a field comparison when filtering records on a local table, by using the OnFilterRecord event.
code:
1
2
3
4
5
procedure TForm1.Table1FilterRecord(DataSet: TDataSet; var Accept: Boolean);

begin
  Accept := DataSet['DateOfPayment'] > DataSet['DateOfPurchase'] + 30;
end;
Rechtstreeks uit de Delphi help.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • marenk_vos
  • Registratie: Augustus 2001
  • Laatst online: 23-07 13:21
JEP!!

Het werkt, bedankt.

Dell XPS 17 Intel i7 2630 Nvidia GT555 3Gb Hd1: OCZ Vertex 2 SSD 60 GB Hd2: 500Gb


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:53
Lees in het vervolg eens de help ofzo.

Waarom wil je geen SQL gebruiken? Da's veel handiger.

https://fgheysels.github.io/


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 16:29
Ja, inderdaad.
Als je 't al in je SQL filtert, scheelt het ook een hoop gegevens die van de DB naar je app gestuurd worden wat de performance weer ten goede komt.
Pagina: 1