Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi unscharfe suche mit like und variablen (https://www.delphipraxis.net/19346-unscharfe-suche-mit-like-und-variablen.html)

Nightfly 1. Apr 2004 14:08


unscharfe suche mit like und variablen
 
Folgendes Problem:

Eine Stored Procedure bekommt eine Char Variable übergeben (stelle). Nun mochte ich diese Variable in der where bedingung eines selechts verwenden, es sollen aber alle werte gefunden werden die mit dem Wert der variablen beginnen.

also

SQL-Code:
select * from tabelle where wert like (:stelle + '%')
Bloß dieser code geht nicht..kann mir vlt. jemand helfen der in SQL Syntax bissl sicherer is? Geht das überhaupt so?

Sharky 1. Apr 2004 14:12

Re: unscharfe suche mit like und variablen
 
Hai Nightfly,

im Prinzip sieht es ja gut aus. Wie übergibst Du denn ":stelle" an dein Query? Als Parameter?
Versuche doch mal das '%' mit dem String zu übergeben und nicht im SQL-Befehl zu schreiben.

Also
SQL-Code:
select * from tabelle where wert like (:stelle)
stelle := 'keine Ahung' + '%';

SirThornberry 1. Apr 2004 14:13

Re: unscharfe suche mit like und variablen
 
Nachfolgende Anweisung findet alles was mit "stelle" beginnt
Code:
select * from tabelle where wert like 'stelle%'

Robert_G 1. Apr 2004 14:28

Re: unscharfe suche mit like und variablen
 
dein erstes Beispiel muss gehen. Oder die DB spinnt. :mrgreen:
Ich benutze das in ähnlicher Weise selbst und es klappt...

Nightfly 1. Apr 2004 14:36

Re: unscharfe suche mit like und variablen
 
Achja,das vergaß ich zu erwähnen.
Es handelt sich um eine Stored Procedure auf einem Firebird Server, welche halt eine input variable stelle hat.

Sowas: stelle := 'keine Ahung' + '%';

quitiert er mit: expression evaluation not supported.

Normalerweise rufe ich die Prozedur so auf:

select * from MyProc('01')

Ändere ich das in

select * from MyProc('01%')

findet er garkeine Datensätze mehr :(

JA, die where klausel habe ich von where (tabelle.stelle = :stelle) in where tabelle.stelle like :stelle geändert.

Hat noch jemand ne idee?

Nightfly 1. Apr 2004 14:39

Re: unscharfe suche mit like und variablen
 
@Robert_G

beim Compilieren bekomme ich da expression evaluation not supported.

Heißt das Firebird kann das nich? Oder hab ich falsche datentypen? Gibts nen trick?

edit: egal ob stelle char oder varchar ist, der fehler bleibt

Robert_G 1. Apr 2004 14:54

Re: unscharfe suche mit like und variablen
 
Du konkatinierst falsch!
In SQL & PL/SQL werden Strings durch || zusammengesetzt (Dieser komische SP-Dialekt von FB/IB wird sich da wohl auch dran halten :roll: ).
Bsp:
SQL-Code:
SELECT X
FROM  Y
WHERE Z like :SearchWord || '%'
Wenn das nicht geht, dann schmeiße deine FB CD in den nächsten Mülleimer. :stupid:

Nightfly 1. Apr 2004 15:27

Re: unscharfe suche mit like und variablen
 
herzlichen dank..hab das zwar mal wo gelesen,aber erst wenn ich sowas selber mal gebraucht hab isses gespeichert..


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