AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Parameter-Übergabe für IN-Operator

Parameter-Übergabe für IN-Operator

Ein Thema von DelphiBandit · begonnen am 10. Feb 2011 · letzter Beitrag vom 10. Feb 2011
Antwort Antwort
Benutzerbild von DelphiBandit
DelphiBandit

Registriert seit: 19. Feb 2007
Ort: bei Walsrode
165 Beiträge
 
Delphi 10.4 Sydney
 
#1

Parameter-Übergabe für IN-Operator

  Alt 10. Feb 2011, 12:01
Datenbank: Firebird • Version: 1.5. • Zugriff über: IBO
Hallo zusammen,

versuche jetzt schon eine Weile herum, aber finde keine Lösung. Ich möchte eine Stored-Procedure bauen, welche eine Reihe von Werten für den IN-Operator übergeben bekommt. Mit String-Übergabe klappt das schon mal überhaupt nicht.

Möchte alle Datensätze, welche auf den ersten beiden Stellen in der Menge enthalten sind. Mit der Übergabe von BEREICHE geht es nicht, schreibe ich es hart codiert in die SP, klar dann funktioniert es. Bin also eigentlich auf der Suche nach einer Art "Evaluator" für die übergebenen BEREICHE (Beispiel-Inhalt '"10","11","12"')

Hat einer von Euch einen Ansatz oder eine Idee für mich?

Vielen Dank

Code:
CREATE PROCEDURE SP_SUCHE (
    TEILNAME VARCHAR(60),
    BEREICHE VARCHAR(128))
RETURNS (
    KZ CHAR(1),
    WERT CHAR(9),
    SUCHNAME VARCHAR(60))
AS
BEGIN
  KZ = "1";

  FOR SELECT WERT, SUCHNAME
      FROM VIEW_SELEKTIERE
      WHERE SUCHNAME STARTING WITH :TEILNAME
      AND SUBSTRING(WERT FROM 1 FOR 2) IN (:BEREICHE)
      INTO :WERT, :SUCHNAME DO
  BEGIN
    SUSPEND;
  END
END
Carsten

Geändert von DelphiBandit (10. Feb 2011 um 12:21 Uhr)
  Mit Zitat antworten Zitat
borwin

Registriert seit: 14. Sep 2006
Ort: Rostock
72 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Parameter-Übergabe für IN-Operator

  Alt 10. Feb 2011, 12:29
Für IN können keine Parameter übergeben werden.
Eine Lösung wäre dynamisches SQL
oder Werte in eine temporäre Tabelle schreiben und dann in das IN per SELECT als Abragemenge einbinden.

Gruß Borwin
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Parameter-Übergabe für IN-Operator

  Alt 10. Feb 2011, 12:29
Ich kenne Firebird nicht unter SQL-Server muß der SQL für diesen Fall in einem Varchar zusammengebaut und per Exec ausgeführt werden.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von DelphiBandit
DelphiBandit

Registriert seit: 19. Feb 2007
Ort: bei Walsrode
165 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Parameter-Übergabe für IN-Operator

  Alt 10. Feb 2011, 12:47
Jupp, danke für den Anstoss - baue mir jetzt mein SQL dynamisch aus einem String zusammen, in den der Parameter mit eingefügt wird. Funktioniert tadellos:
Code:
  STMNT = "SELECT WERT, SUCHNAME FROM VIEW_SELEKTIERE WHERE SUBSTRING(WERT FROM 1 FOR 2) IN (" || :BEREICHE || ")";
  FOR EXECUTE STATEMENT
      STMNT
      INTO :WERT, :SUCHNAME
      DO
    SUSPEND;
OK, das "STARTING WITH" sollte ich noch ergänzen
Carsten
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:00 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