AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Alternative für position() in Firebird?
Thema durchsuchen
Ansicht
Themen-Optionen

Alternative für position() in Firebird?

Ein Thema von dust258 · begonnen am 19. Nov 2009 · letzter Beitrag vom 19. Nov 2009
Antwort Antwort
dust258

Registriert seit: 18. Aug 2008
62 Beiträge
 
#1

Alternative für position() in Firebird?

  Alt 19. Nov 2009, 08:54
Datenbank: FB • Version: 2.1 • Zugriff über: Standart-Komponenten
Guten Morgen Ihr Lieben,
ich habe mal wieder ein kleines Problem. Und zwar habe ich ein kleines Suchfeld gemacht mit dem ich eine ziemlich große Liste filtern kann. Das funktioniert auch ganz gut. Nur möchte ich jetzt das man auch mehrere Parameter in das Feld eingeben kann. Ich habe mir dafür folgenden Code ausgedacht:

SELECT * FROM BEDIENER
WHERE (position(Bediener in :cBediener) >0)

In CBediener könnte also z.B. "SYS, RR, BB" stehen.
Das funktioniert relativ gut (ich habe Probleme wenn in BEDIENER Leerzeichen hinter den Kürzeln kommen, aber das bekomme ich noch hin).

Nur habe ich jetzt hier gelesen das es die Funktion "position()" erst ab FB 2.1 verfügbar ist... Kennt Ihr noch eine Alternative in FB 1.5?
  Mit Zitat antworten Zitat
dust258

Registriert seit: 18. Aug 2008
62 Beiträge
 
#2

Re: Alternative für position() in Firebird?

  Alt 19. Nov 2009, 09:29
Habs schon gefunden: Das position() kann ich mir einfach sparen.

SELECT * FROM BEDIENER
WHERE (Bediener in (:cBediener))

Jetzt muss ich nur verhindern das bei BEDIENER die Nachkommastellen mit abgepfüft werden. Ist nämlich ein CHAR(5) Feld...

Edit: Das funktioniert doch nicht... Er findet bei mehreren Bedienern nichts... (SYS, RR)
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#3

Re: Alternative für position() in Firebird?

  Alt 19. Nov 2009, 12:24
Hallo,

ich wollte schon schreiben, dass IN falsch ist. Das erwartet nämlich eine Liste als Parameter, aber ein String ist keine Sammlung von Teilstrings.

Du kannst CONTAINING benutzen, siehe z.B. Wikibook: Einführung in SQL.

Allgemeiner Hinweis zu den Funktionen: Diese sind bis 2.0 als UDF (User-Defined Function) einzubinden. Es gibt sie in aller Regel schon sehr lange, aber nicht intern, sondern extern.

Gruß Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  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 16: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