AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi für ADO Komponenten filter -> like für Zahlen
Thema durchsuchen
Ansicht
Themen-Optionen

für ADO Komponenten filter -> like für Zahlen

Ein Thema von missi · begonnen am 11. Aug 2005 · letzter Beitrag vom 11. Aug 2005
Antwort Antwort
Seite 1 von 2  1 2      
missi

Registriert seit: 7. Aug 2005
Ort: Ddorf
27 Beiträge
 
#1

für ADO Komponenten filter -> like für Zahlen

  Alt 11. Aug 2005, 09:26
Datenbank: MSSQL • Zugriff über: ADO
Guten Morgen

Mit hilfe dieser Funktion haben wir früher in einem numerischen Feld nach Zahlteilfolgen gesucht. Seit dem wir ADO-Komponenten benutzen funktioniert diese Funktion nicht mehr.

Delphi-Quellcode:
   TB1.Filter := SelectColumn + ' LIKE ' + EdtSearch.Text;
   TB1.Filtered := True;
   Value := Grid.Fields[TB1.FieldList.IndexOf(SelectColumn)].AsString;
   TB1.Filtered := False;
   TB1.Locate(SelectColumn, StrToIntDef(Value, 0), []);
Gibt es eventuell eine Alternative für diese Filterfunktion?

lg ela
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: für ADO Komponenten filter -> like für Zahlen

  Alt 11. Aug 2005, 09:48
Zitat von missi:
Mit hilfe dieser Funktion haben wir früher in einem numerischen Feld nach Zahlteilfolgen gesucht.
Nach Zahlteilfolgen zu suchen macht doch in 99,9% aller Fällen keinen Sinn.
Wenn man in einem Preisfeld nach "12*" suchen würde, dann würde man folgende Werte finden 12,99 Eur, 128,50 Eur, 1250,60 Eur.
Der Informationsgehalt dieses Suchergebnisse ist annäherd gleich Null (rein logisch betrachtet).

Wenn du aber in einem Lieferscheinfeld oder in einer Postleitzahl suchen möchtest, dann machen Zahlteilfolgen durchaus einen Sinn!!
Dann hast du aber einen DB Designfehler begangen, denn Lieferscheinnr, PLZ, Kundennr, ... werden als Stringfeld gespeichert.
Andreas
  Mit Zitat antworten Zitat
missi

Registriert seit: 7. Aug 2005
Ort: Ddorf
27 Beiträge
 
#3

Re: für ADO Komponenten filter -> like für Zahlen

  Alt 11. Aug 2005, 09:54
Danke für den Tip

Aber unsere Software ist vielseitig verwendbar und bitte daher Lösungen zu Posten und nicht Vorschläge von einer DB-Struktur die besser geeignet scheint.

Danke
  Mit Zitat antworten Zitat
Luciano

Registriert seit: 17. Dez 2003
Ort: Großostheim
126 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: für ADO Komponenten filter -> like für Zahlen

  Alt 11. Aug 2005, 10:30
Hi,

ich hatte das selbe Problem und bin dann den von shmia beschriebenen Weg gegangen, ich hatte keine Alternative gefunden und auch nicht wirklich Zeit zum suchen.

Greets
Mike Santangelo
Wie kann ich den wissen was ich denke, wenn ich nicht höre was ich sage!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: für ADO Komponenten filter -> like für Zahlen

  Alt 11. Aug 2005, 10:32
Sind auch Wildcards vorhanden?

TB1.Filter := SelectColumn + ' LIKE %' + EdtSearch.Text + '%';
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#6

Re: für ADO Komponenten filter -> like für Zahlen

  Alt 11. Aug 2005, 10:33
Zitat von Bernhard Geyer:
Sind auch Wildcards vorhanden?

TB1.Filter := SelectColumn + ' LIKE %' + EdtSearch.Text + '%';
Ich Wildcards funktionieren nur bei Strings. Könntest mal so versuchen:

TB1.Filter := SelectColumn + ' LIKE ''' + EdtSearch.Text + '%''';
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#7

Re: für ADO Komponenten filter -> like für Zahlen

  Alt 11. Aug 2005, 10:34
Zitat von missi:
.... bitte daher Lösungen zu Posten und nicht Vorschläge ...
Hai missi,

bist Du zwingend auf eine TTable angewiesen oder könntest Du auch mit einem TQuery arbeiten?
Wenn es geht könntest Du in deiner SQL-Abfrage das nummerische Feld ja in einen String casten und diesen dann in der WHERE-LIKE abfrage verwenden.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
missi

Registriert seit: 7. Aug 2005
Ort: Ddorf
27 Beiträge
 
#8

Re: für ADO Komponenten filter -> like für Zahlen

  Alt 11. Aug 2005, 10:34
Zitat von Luciano:
Hi,

ich hatte das selbe Problem und bin dann den von shmia beschriebenen Weg gegangen, ich hatte keine Alternative gefunden und auch nicht wirklich Zeit zum suchen.

Greets
na dann hoffe ich das jemand eine Lösung weiss. Den wir haben keinen Einfluss auf die DB-Struktur und suchen daher eine Lösung für das "Problem" bzw. eine Alternative um dies zu realisieren.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

Re: für ADO Komponenten filter -> like für Zahlen

  Alt 11. Aug 2005, 10:42
Zitat von missi:
es ist eine numerische Chip-Identifikationsnummer
Das wäre dann auch ein Kandidat für ein Stringfeld.
Es handelt sich um einen Identifikationsschlüssel, der genausogut auch Buchstaben enthalten könnte.
Es handelt sich um keine wirkliche Zahl, wie z.B. "Artikelmenge".
Mit einer Artikelmenge kann man rechnen (addieren, subtrahieren, ...).
Mit einer Chip-Identifikationsnummer kann man nicht rechnen.
Andreas
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: für ADO Komponenten filter -> like für Zahlen

  Alt 11. Aug 2005, 10:54
Hi missi,

wenn alles Invarianten sind, dann bleibt dir nichts anderes übrig, als das OnFilterRecord-Event zu bedienen. Eine Query wäre ohne Änderung an der Tabelle viel einfacher:

SELECT * FROM tabelle WHERE CAST(chip_id AS VARCHAR) LIKE '%42%' Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz