AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi %? Alles vor und nach String abfragen?
Thema durchsuchen
Ansicht
Themen-Optionen

%? Alles vor und nach String abfragen?

Offene Frage von "Jack23"
Ein Thema von Jack23 · begonnen am 2. Okt 2007 · letzter Beitrag vom 3. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#1

%? Alles vor und nach String abfragen?

  Alt 2. Okt 2007, 23:47
Datenbank: Access • Version: 2003 • Zugriff über: ADO
Hallo

Das andere Thema hat sich erledigt. Ich habe selbst eine Lösung gebastelt. Nur weiß ich nicht wie ich sie umsetzen soll.

Ich möchte gerne das vor diesem string: + QuotedStr(sText); und nach diesem String alles abgefragt wird.
Ich glaube das geht mit diesen Prozentzeichen.

Beispiel:

Delphi-Quellcode:
Close;
    SQL.Text := 'SELECT * FROM abc WHERE wert LIKE %'+ QuotedStr(sText)%;
    Open;
So ungefähr müsste das aussehen. Ich hoffe ihr könnt mir sagen wir man das richtig macht.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

Re: %? Alles vor und nach String abfragen?

  Alt 2. Okt 2007, 23:52
Delphi-Quellcode:
Close;
sText := QuotedStr('%' + sText + '%');
SQL.Text := 'SELECT * FROM abc WHERE wert LIKE '+ sText;
Open;
Allerdings ist das so ziemlich das unperformanteste, was man tun kann, da so kein Index der Welt mehr greifen kann (es wird immer ein Full Table Scan durchgeführt).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#3

Re: %? Alles vor und nach String abfragen?

  Alt 3. Okt 2007, 00:00
Ah perfekt funktioniert. Nun möchte ich aber das nach jedem Wort in dem String % kommt. Geht das?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

Re: %? Alles vor und nach String abfragen?

  Alt 3. Okt 2007, 00:02
Zitat von Jack23:
Nun möchte ich aber das nach jedem Wort in dem String % kommt.
Wie bitte?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sko
Sko

Registriert seit: 11. Sep 2005
327 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: %? Alles vor und nach String abfragen?

  Alt 3. Okt 2007, 00:04
Den anderen Themen nach zu urteilen hattest du noch nicht so oft mit Datenbanken zu tun (nehm ich mal an), du solltest dir vielleicht mal die Normalisierung ansehen (wiki hilft), dann klären sich vielleicht einige Dinge von alleine (dann gibts wahrscheinlich elegantere und performantere Lösungen ).

@Roter Kasten: seh ich auch so:
MfG Sko
Zitat von Phoenix:
[OT]Phoenix guckt in die Glaskugel, zuckt mit den Flügelspitzen, krächzt etwas von wegen 'Boden' und 'Scherben' und schubbst die Kugel in Richtung Tischkante.[/OT]
Rockbox
  Mit Zitat antworten Zitat
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#6

Re: %? Alles vor und nach String abfragen?

  Alt 3. Okt 2007, 00:07
Ich hasse das, dass ich nicht gut erklären kann. Also folgendes Problem:

Dein Code:
Delphi-Quellcode:
Close;
sText := QuotedStr('%' + sText + '%');
SQL.Text := 'SELECT * FROM abc WHERE wert LIKE '+ sText;
Open;
Indem String steht jetzt wert1 wert2 wert3

Dann wird halt eine Datenbank abfrage gemacht. Wenn es aber in der Datenbank nicht in der Reihenfolge steht wie es abgefragt wird, wird es nicht angezeigt. In der Datenbank steht es so: wert3 wert1 wert2
So kann es nicht abgefragt werden. Wie kann ich das mit dem Code oben abfragen? Also so das es egal ist wie die Wörter in dem String positioniert sind.


edit: Die Performance ist egal. Das wird keine Anwendung für 10000 Daten.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#7

Re: %? Alles vor und nach String abfragen?

  Alt 3. Okt 2007, 15:40
Es widerstrebt mir, das überhaupt zu posten, aber wenn die Reihenfolge auch keine Rolle spielen darf/soll, können wir die Performance auch komplett in den Keller drücken. Das wäre dann eine Abfrage in der Art:
SQL-Code:
SELECT * FROM Tabelle
WHERE Feld LIKE '%wert1%'
AND Feld LIKE '%wert2%'
AND Feld LIKE '%wert3%'
Somit hast Du nun je Wert einen Full Table Scan, schlimmer geht' s nimmer.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#8

Re: %? Alles vor und nach String abfragen?

  Alt 3. Okt 2007, 16:30
Das ist ja auch kein Problem. Aber ich möchte ja die Abfrage mit dem String machen.

Oder kann ich den String für die Abfrage auseinander nehmen?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#9

Re: %? Alles vor und nach String abfragen?

  Alt 3. Okt 2007, 16:33
Zitat von Jack23:
Oder kann ich den String für die Abfrage auseinander nehmen?
Besser gar nicht erst zusammensetzen . Wenn Du es noch so machst wie im alten Thread, kannst Du für wert1, wert2 usw. ja CheckBox1.Caption, CheckBox2.Caption etc. einsetzen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#10

Re: %? Alles vor und nach String abfragen?

  Alt 3. Okt 2007, 16:36
Was passiert mit den Checkcoxen die nicht angekreuzt sind? Und was mache ich wenn ich ungefähr hm ... 600 Checkboxen habe?
  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 16:51 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