Entwickler-Ecke
Datenbanken - String in DBMemo-Feld suchen?
Hagaga - Mo 30.08.10 12:54
Titel: String in DBMemo-Feld suchen?
Guten Tag
Stehe vor folgendem Problem:
Ich habe eine einfache Adressverwaltung, wo ich den einzelnen Adressen via einem DBMemo-Feld "Adressarten" zuweisen kann.
Bsp. Herr Meier ist Musiker, fährt Auto, isst gerne gut etc..., also tippe ich im Memofeld folgende Lines ein: "Musik", "Auto" und "Gourmet". Nun möchte ich z.B. mit einer Abfrage erreichen, dass jene DS im DBGrid erscheinen, welche im DBMemo-Feld die
Einträge "Musik" und "Gourmet" enthalten.
Gibt es eine Möglichkeit, ein Memofeld zu durchsuchen und fltern (TTable)...?
Für Tipps oder Codeschnipsel wäre ich sehr dankbar.
MfG Bruno
Delete - Do 09.09.10 15:50
Ein Memofeld kannst du nicht mit Datenbank-Werkzeugen durchsuchen. Ich würde daher die Datenbankstruktur ändern und eine Tabelle einfügen, welche alle benötigten Strings - Auto, Gourmet, Musik usw. - enthält. Dann fügst du eine dreispaltige Tabelle ein, die einfach nur Verknüpfungen der Adress-Tabelle mit den "Adress-Arten" aufnimmt: Spalte 1= Index, Spalte 2 = Adress-Index, Spalte 3 = Adress-Arten-Index. Diese Verknüpfungs-Tabelle kannst du dann mit einem einfachen Select-Befehl ansprechen:
select * from KnüpfTab where Adress_Index = 1 (Selektiert alle Verknüpfungen der Adresse mit dem Index 1)
oder
select * from KnüpfTab where Adress_Art_Index = 3 (selektiert alle Verknüpfungen mit der Adress-Art 3)
Critter - Do 09.09.10 18:02
Hi,
ich muss
Perlsau zustimmen, das beste wird es sein, wenn du deine DB-Struktur überarbeitest, wenn es aber bei den Textfeld bleibt kann dir SQL mit dem Like-Operator helfen.
Eine Anfrage könnte so aussehen:
SQL-Anweisung
1: 2: 3:
| SELECT * FROM Adressdaten WHERE (TextFeld Like '%Musik%') Or (TextFeld Like '%Auto%') |
wo du das Schlüsselwort "Gourmet" hernehmen willst ist mir schleierhaft.
Auf jeden Fall könnte das funktionieren, es ist aber ziemlich Igitt, weil Like Anfragen verständlicherweise recht Resourcen hungrig sind. Außerdem weden die user immer irgendetwas anders eingeben als du es erwartest.
Deshalb noch mal der hinweis: Besser du lässt die user eine Attribute List Pflegen, deren Einträge sie dann per Checkbox dem Adressdatensatz zuweisen können.
critter
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!