Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi STRING SUCHE! (https://www.delphipraxis.net/19285-string-suche.html)

thomasvonmuenster1 31. Mär 2004 14:16


STRING SUCHE!
 
Ich lasse in meiner DB nach einen String suchen. Das geht auch soweit.
Aber ich muß auf Groß und Kleinschreibung achten.
Das will ich aber nicht. Er soll trotzdem suchen auch wenn ich klein schreibe
und die Wörten groß geschreiben sind.

SirThornberry 31. Mär 2004 14:19

Re: STRING SUCHE!
 
Sollte so gehen
SQL-Code:
  Select * where blabla like 'suchwort';

thomasvonmuenster1 31. Mär 2004 14:23

Re: STRING SUCHE!
 
Ich mache es so!
Delphi-Quellcode:
IBTable1.Open;
 IBQuery1.SQL.Text:='select * from NEW_Table where INHALT like ''%'+edit2.Text+'%''';
 IBQuery1.Open;
Aber ich möchte es das er nicht in groß und klein unterscheidet!

SirThornberry 31. Mär 2004 14:25

Re: STRING SUCHE!
 
bei mysql (bei der Version die wir haben) arbeitet like nicht casesensitiv, liegt also an der Datenbank die du verwendest... Was für eine DB benutzt du?? Access, mysql,....??

thomasvonmuenster1 31. Mär 2004 14:29

Re: STRING SUCHE!
 
Interbase 6.0

Die Muhkuh 31. Mär 2004 14:29

Re: STRING SUCHE!
 
ich hab zwar keine Ahnung, aber ich schätze das mal so:

schreib alles in der DB klein und im Quelltext dann so:

Delphi-Quellcode:
IBTable1.Open;
IBQuery1.SQL.Text:='select * from NEW_Table where INHALT like ''%'+AnsiLowerCase(edit2.Text)+'%''';
IBQuery1.Open;

thomasvonmuenster1 31. Mär 2004 14:33

Re: STRING SUCHE!
 
Der Inhalt wird über word und pdf dokumente eingelesen in die DB.
Das wäre zuviel arbeit diese Daten zu ändern.
Gibt es noch eine Möglichkeit??

SirThornberry 31. Mär 2004 14:40

Re: STRING SUCHE!
 
in der MySQL-Hilfe habe ich "LOWER" gefunden. Allerdings weiß ich jetzt nicht ob es
Code:
'select LOWER(*) from NEW_Table where INHALT like ''%'+edit2.Text+'%''';
Code:
'select * from NEW_Table where LOWER(INHALT) like ''%'+edit2.Text+'%''';
oder noch anders aussehen muss

sakura 31. Mär 2004 15:01

Re: STRING SUCHE!
 
:warn: Ändere bitte die Überschrifgt. Nur Großbuchstaben sind absolut unerwünscht!

...:cat:...

DelphiDeveloper 31. Mär 2004 15:09

Re: STRING SUCHE!
 
du schreibst die Daten kommen aus word und pdf
sind denn das nur varchar in deiner IB DB?

Des weiteren ist die Suche ueber "like" sehr aufwendig da
keine indizes verwendet werden können.

Mit Blob felder wenn vorhanden, wirst du ohnehin probleme bekommen.

Vielleicht lohnt sich ja mal ueber eine Volltextsuche in IB nachzudenken.

thomasvonmuenster1 1. Apr 2004 07:26

Re: STRING SUCHE!
 
Mit blob habe ich erst gearbeitet das ging nicht so einfach.
Habe dann ein kleines prog geschrieben das die Daten in DB ein großes Textfeld liest.
Daraus suche ich dann mein String.
Versuche jetzt mal mit Lower zu arbeiten.

thomasvonmuenster1 1. Apr 2004 09:08

Re: STRING SUCHE!
 
Mit Lower geht es nicht im SQL. Da Gibt er SQL Fehler.

generic 1. Apr 2004 09:47

Re: STRING SUCHE!
 
Delphi-Quellcode:
  IBQuery1.SQL.Text:='select * from NEW_Table where INHALT like ''%'+edit2.Text+'%''';
ich möchte drauf hinweise das solche konstrukte wir oben unsicherer code sind.
es hindert niemand da ran die sql's nach belieben zu erweitern.

thomasvonmuenster1 1. Apr 2004 09:51

Re: STRING SUCHE!
 
Wie kann man das denn Erweitern?
String groß oder klein Unterscheidung, soll er nicht machen!Wie?

subjective 1. Apr 2004 10:20

Re: STRING SUCHE!
 
Du mußt bedenken, das der SQL-Server das ganze SQL als String erhält. Wenn man also Hochkommas (und Anführungszeichen) nicht behandelt, werden sie als SQL interpretiert. Ein Hochkomma in Edit2.Text, würde den Stringwert abschließen. Der Rest würde dann wieder als SQL-Befehl ausgeführt werden. Das kann im einfachsten Fall zu Fehlermeldungen führen, oder aber von einem Anfreifer ausgenutzt werden, das SQL in seinem Sinne zu manipulieren.

Regards
Thomas

thomasvonmuenster1 1. Apr 2004 12:05

Re: STRING SUCHE!
 
Wie unterscheidet man in groß und kleinschreibung?
Er soll nicht unterscheiden groß u. klein.
Hilfe!

thomasvonmuenster1 7. Apr 2004 07:09

Re: STRING SUCHE!
 
Guten Morgen!
Hat jemand eine Idee?

fkerber 7. Apr 2004 07:16

Re: STRING SUCHE!
 
Hi!

Steht alles klein in der DB oder auch dort klein und groß durcheinander?

In ersterem Fall einfach die Nutzereingabe vorher in Kleinbuchstaben umwandeln, ansonsten zusätzlich noch die Daten aus der DB in Kleinbuchstaben machen (kannst ja mal nach Bei Google suchenLower suchen.

Ciao fkerber

Matze 7. Apr 2004 07:20

Re: STRING SUCHE!
 
Ja, oder einfach beim Einlesen mit UpperCase bzw. Lowercase in Groß- bzw. Kleinbuchstaben umwandeln.

Anders wüddte ich auch nicht, wie man das überprüfen könnte.

thomasvonmuenster1 7. Apr 2004 07:35

Re: STRING SUCHE!
 
Danke!

thomasvonmuenster1 7. Apr 2004 07:36

Re: STRING SUCHE!
 
Es hat mit LOWER funktioniert!

thomasvonmuenster1 7. Apr 2004 07:38

Re: STRING SUCHE!
 
Wünsche alle ein Frohes Ostern!


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:29 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