AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL LIKE *Sonderzeichen*
Thema durchsuchen
Ansicht
Themen-Optionen

SQL LIKE *Sonderzeichen*

Ein Thema von Janine90 · begonnen am 28. Aug 2013 · letzter Beitrag vom 28. Aug 2013
Antwort Antwort
Janine90

Registriert seit: 15. Feb 2013
3 Beiträge
 
#1

SQL LIKE *Sonderzeichen*

  Alt 28. Aug 2013, 15:18
Datenbank: x • Version: x • Zugriff über: x
Hallo

Ich habe grade das Problem mit meinen Datenbankzugriff und hoffe ihr könnt helfen.

In meiner SQL Datenbank habe ich unter anderen beide Spalten
text_id | text
_____________|___________________
T_4_GR_001 | beliebiger Text
T_4_GR_002 | beliebiger Text
T_4_GR_003 | beliebiger Text
T_4_GR_004 | [123]
T_4_GR_005 | [234]
T_4_GR_006 | [345]
T_4_GR_007 | [347]
T_5_GR_001 | beliebiger Text
T_5_GR_002 | [349]

Ich möchte aber nur diese Spalten bekommen
T_4_GR_001 | beliebiger Text
T_4_GR_002 | beliebiger Text
T_4_GR_003 | beliebiger Text

Programmiert habe ich folgendes
Code:
 
  text := '[%';
  text_id := 'T_4_GR%';
  SQLQuery.SQL.Clear;
  SQLQuery.SQL.Add('SELECT *');
  SQLQuery.SQL.Add('FROM datenbank);
  SQLQuery.SQL.Add('WHERE text_id LIKE :text_id AND text LIKE :text');
  SQLQuery.Parameters.ParamByName('text_id').Value := text_id;
  SQLQuery.Parameters.ParamByName('text').Value := text;
  SQLQuery.open;
Was funktioniert nun noch nicht?
Wenn ich nur beim Where die text_id abfrage, dann bekomme ich auch die entsprechenden Werte aus der Datenbank, aber sobald ich den Text mit [% Vergleich funktioniert es nun nicht mehr. Meine Vermutung ist, dass es an dem "[" liegt.
Habt ihr Erfahrung damit?
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: SQL LIKE *Sonderzeichen*

  Alt 28. Aug 2013, 15:33
Du könntest versuchen ein Escape-Zeichen vor das [ zu setzen. Also:

text := '\[%'; für MySQL (wobei in MySQL [ kein Sonderzeichen ist)
text := '[[]%'; für MSSQL einklammern
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)

Geändert von baumina (28. Aug 2013 um 15:56 Uhr)
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#3

AW: SQL LIKE *Sonderzeichen*

  Alt 28. Aug 2013, 15:36
Um was für ein Datenbankmanagementsystem handelt es sich denn?
SQL Server?
MySQL?
FireBird?
PostgreSQL?
...
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: SQL LIKE *Sonderzeichen*

  Alt 28. Aug 2013, 16:11
Versuch es doch mal mit
Code:
not like :Text
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Janine90

Registriert seit: 15. Feb 2013
3 Beiträge
 
#5

AW: SQL LIKE *Sonderzeichen*

  Alt 28. Aug 2013, 16:43
Danke so funktioniert es jetzt

Versuch es doch mal mit
Code:
not like :Text
Du könntest versuchen ein Escape-Zeichen vor das [ zu setzen. Also:
Code:
text := '[[]%';
für MSSQL einklammern
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:30 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