AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Hilfe bei SQL Abfrage Firebird
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe bei SQL Abfrage Firebird

Ein Thema von burn · begonnen am 18. Jul 2008 · letzter Beitrag vom 18. Jul 2008
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
burn

Registriert seit: 9. Apr 2003
80 Beiträge
 
Delphi 5 Professional
 
#1

Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 09:20
Datenbank: Firebird • Version: 1.5 • Zugriff über: Zeos-Komponenten
Hallo allerseits,

hätte da mal eine Frage zu einer SQL-Abfrage:

Delphi-Quellcode:

TextTeil1 := 'abc';
TextTeil2 := 'xyz';

s := AnsiUpperCase(TextTeil1 + '_' + TexTeil2 + '_');

QSuche.SQL.Add('Select Feld1, Feld2, Feld3 from Tabelle where ');
QSuche.SQL.Add('UPPER(FELD1 COLLATE DE_DE) like ' + QuotedStr(s));

...
Normalerweise sollte die Abfrage mir doch Ergebnisse wie
abcZxyzA, abcDxyzj, abc1xyz2 etc. liefern...

Steht jedenfalls da

Aber die Ergebnis-Menge bleibt leer. Die Frage: Hab ich irgendwas vergessen, nicht beachtet oder nicht verstanden ??

mfg Burn
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 09:27
Es fehlt der Joker
TextTeil1 := 'abc%'; Allerdings findet er dann alles was mit abc beginnet
Markus Kinzler
  Mit Zitat antworten Zitat
burn

Registriert seit: 9. Apr 2003
80 Beiträge
 
Delphi 5 Professional
 
#3

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 09:32
@ mkinzler

Richtig ... genau das wollte ich ja vermeiden ...

er soll eben nur die Datensätze finden die folgendermassen aufgebaut ist

TextTeil1 ...

dann etweder '/' oder '\' ...

dann TextTeil2 ...

dann ein beliebiger Buchstabe Bsp. a

Also abc\xyza oder abc/xyzB oder auch abc\xyzP

Vielleicht kann man die Abfrage auch anders gestalten ???

mfg Burn
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 09:39
Schreib dir eine UDF dafür oder FB ab 2.5.
Markus Kinzler
  Mit Zitat antworten Zitat
burn

Registriert seit: 9. Apr 2003
80 Beiträge
 
Delphi 5 Professional
 
#5

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 09:50
UDF fällt aus ... darf die DB nicht ändern ...
Oder kann man das auch ausserhalb der DB festlegen ???

Umstellung auf FB 2.5 wollen die Admins erst mal nicht machen ...

mfg Burn
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 09:52
Du must die Funktionen in die DB importieren. Fällt also aus.
Markus Kinzler
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#7

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 10:08
Hallo,

da fällt mit momentan nur eine blöde Frage ein:

Gibt es das, was Du suchst tatsächlich in der Datenbank?

Ist mit auch mal passiert, bin an der Abfrage verzweifelt, bis ich dann feststellte, dass das, was ich bitte dringend raussuchen sollte, garnicht vorhanden war.

Syntaktisch erscheint mir Deine Abfrage korrekt für die gestellte Aufgabe.

Je nach Datenbank wir bei Like nicht zwischen Groß- und Kleinschreibung unterschieden, versuch's mal ohne Upper.

Stephan
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 10:26
Geht so was nicht ?

SELECT * FROM TABLEX WHERE (NAME CONTAINING 'abcAND BEZ CONTAINING 'z') Ist die Stelle an der der Substring steht von Bedeutung ?
Gruß
Hansa
  Mit Zitat antworten Zitat
burn

Registriert seit: 9. Apr 2003
80 Beiträge
 
Delphi 5 Professional
 
#9

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 10:33
@ nahpets

Natürlich gibt es das was ich suche ...
Wenn die Abfrage lautet :

'Select Feld1,Feld2,Feld3 where UPPER(FELD1 COLLATE DE_DE) = '  + QuotedStr(AnsiUpperCase('abc\123a')) dann kommt ein Ergebnis ...

Nur brauch ich das wie oben beschrieben ...

Und ohne Upper geht nicht, da für das Feld welches abgefragt wird, zu viele Schreibweisen vorhanden sind.

@ Hansa

siehe #3


mfg burn
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: Hilfe bei SQL Abfrage Firebird

  Alt 18. Jul 2008, 10:46
Bin mir ziemlich sicher, dass es einen SQL-Trick gibt, der mir gerade nicht einfällt. Aber im Zweifelsfall würde ich kurzen Prozess machen. Lese notfalls die komplette Datenmenge mit möglichst großer Einschränkung. Also mit so was : like 'abc%' . Das dürfte dann nicht zuviel zurückliefern. Was dann noch übrigbleibt, das würde ich eben dann im Programm abfangen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 05:10 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