![]() |
ClientDataSet in mehreren Spalten suchen
Hi DP, wie kann man mit dem ClientDataSet mehrere Spalten durchsuchen sprich, beide Spalten müssen meinen Kriterien entsprechen. Ich habe auch schon gegoogled aber wahrscheinlich nach dem Falschen..
Danke Luki :spin: |
AW: ClientDataSet in mehreren Spalten suchen
Das geht, wie in jedem anderen DataSet auch, indem man mehrere Namen und Werte übergibt. :angel:
Delphi-Quellcode:
Locate('feld', wert, ...)
Locate('feld1;feld2', VarArrayOf([wert1, wert2]), ...) |
AW: ClientDataSet in mehreren Spalten suchen
Oh ok, danke :thumb:
PS: Ich dachte das geht in die Richtung mit
Delphi-Quellcode:
:mrgreen:
Locate(Feld1 and Feld2, Wert1 and Wert2, ...
Edit: ich bekomme den Fehler
Code:
:gruebel:
[dcc32 Fehler] haupt.pas(213): E2010 Inkompatible Typen: 'array of Variant' und 'string'
|
AW: ClientDataSet in mehreren Spalten suchen
Zitat:
![]() |
AW: ClientDataSet in mehreren Spalten suchen
Zitat:
Aber ich kann jetzt nciht sagen was, da ich ja nicht weiß was du genau machst. :wink: Es geht natürlich auch so
Delphi-Quellcode:
, wobei hier , und ; als Trennzeichen erlaubt sind und man sich um das Array nicht selber kümmern muß.
Locate('feld1,feld2', [wert1, wert2])
Man kann eventuell auch noch Leerzeichen entfernen, womit dann auch
Delphi-Quellcode:
ginge, falls man eine bessere Tennung mag.
'feld1, feld2'
Delphi-Quellcode:
type
TDataSetHelper = class helper for TDataSet function Locate(const KeyFields: string; const KeyValues: Variant): Boolean; overload; function Locate(const KeyFields: string; const KeyValues: array of Variant; Options: TLocateOptions=[]): Boolean; overload; function Lookup(const KeyFields: string; const KeyValues: array of Variant; const ResultFields: string): Variant; overload; end; function TDataSetHelper.Locate(const KeyFields: string; const KeyValues: Variant): Boolean; begin Result := Locate(KeyFields, KeyValues, []); end; function TDataSetHelper.Locate(const KeyFields: string; const KeyValues: array of Variant; Options: TLocateOptions): Boolean; begin Result := Locate(ReplaceStr(KeyFields, ',', ';'), VarArrayOf(KeyValues), Options); end; function TDataSetHelper.Lookup(const KeyFields: string; const KeyValues: array of Variant; const ResultFields: string): Variant; begin Result := Lookup(ReplaceStr(KeyFields, ',', ';'), VarArrayOf(KeyValues), ResultFields); end; |
AW: ClientDataSet in mehreren Spalten suchen
Ok, danke. Der Fehler hat sich erübrigt, habe anscheinend nur eckige Klammern vergessen
|
AW: ClientDataSet in mehreren Spalten suchen
Zitat:
[edit] Ups. Ja, die Klammern vergessen. :oops: |
AW: ClientDataSet in mehreren Spalten suchen
Zitat:
|
AW: ClientDataSet in mehreren Spalten suchen
Ahhh, hab's im TDataSet.Locate gefunden ... siehe "Siehe auch" :stupid:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz