AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken C# [SQL] Select mit dynamischer Parameteranzahl
Thema durchsuchen
Ansicht
Themen-Optionen

[SQL] Select mit dynamischer Parameteranzahl

Ein Thema von Reinhardtinho · begonnen am 20. Feb 2009 · letzter Beitrag vom 3. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#1

[SQL] Select mit dynamischer Parameteranzahl

  Alt 20. Feb 2009, 11:36
Datenbank: SQL Server 2000 • Zugriff über: SQL Skript
Hi zusammen,

ich möchte eine SQL-Abfrage erstellen, bei der die Anzahl der Parameter noch nicht fest steht.

z.B. soll nach verschiedenen Namen gesucht werden.

SQL-Code:
SELECT Name
FROM Tabelle
WHERE Name like '%Meier%or Name like '%Mueller%'
Wie kann ich eine solche Abfrage mit einer dynamischen Anzahl an zu suchenden Namen erstellen?

Vielen Dank für eure Hilfe
Lorenz
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: [SQL] Select mit dynamischer Parameteranzahl

  Alt 20. Feb 2009, 11:37
Versuch es mal mit in
Markus Kinzler
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#3

Re: [SQL] Select mit dynamischer Parameteranzahl

  Alt 20. Feb 2009, 11:41
@mkinzler
in und like funktionieren zusammen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: [SQL] Select mit dynamischer Parameteranzahl

  Alt 20. Feb 2009, 11:43
Stimmt könnte schwer werden.
Dann bietet sich eigentlich nur eine SP an, welche die Abfrage dynamisch generiert.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: [SQL] Select mit dynamischer Parameteranzahl

  Alt 20. Feb 2009, 11:45
Kannst du mit bitte einen Tipp geben, wie die SP aussehen kann?
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

Re: [SQL] Select mit dynamischer Parameteranzahl

  Alt 20. Feb 2009, 11:45
Hallo,

in wird nicht funktionieren, da es keine Joker erlaubt.

Eine etwas "blöde" Variante könnte sein:

SQL-Code:
SELECT Name
FROM Tabelle
WHERE 1 = 2
Dieses SQL liefert natürlich kein Ergebnis aber:

Wenn Du nun hergehst und für jeden Namen ein OR anfügst, so bekommst Du ein gültiges SQL, dass Ergebnisse liefert und in der Zahl der zu suchenden Namen fast grenzenlos ist.

SQL-Code:
SELECT Name
FROM Tabelle
WHERE 1 = 2
OR Name like '%Meier%'
OR Name like '%Mueller%'
...
OR Name like '%Zeppelin%'
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: [SQL] Select mit dynamischer Parameteranzahl

  Alt 20. Feb 2009, 11:47
@nahpets:

Da sehe ich jetzt nicht, wie ich das mit dynamischen Parametern lösen könnte, dafür muss ich ja die Anzahl kennen.
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: [SQL] Select mit dynamischer Parameteranzahl

  Alt 20. Feb 2009, 11:49
Zitat von Reinhardtinho:
Kannst du mit bitte einen Tipp geben, wie die SP aussehen kann?
-du übergibst die Namen trennzeichengetrennt in einem String
-gehst durch diese Liste und fügst dann die entsprechende Bedingung ein
Markus Kinzler
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#9

Re: [SQL] Select mit dynamischer Parameteranzahl

  Alt 20. Feb 2009, 11:51
Hallo,
Zitat von Reinhardtinho:
@nahpets:

Da sehe ich jetzt nicht, wie ich das mit dynamischen Parametern lösen könnte, dafür muss ich ja die Anzahl kennen.
Du musst dieses SQL zur Laufzeit um die OR-Zeilen erweitern, d. h. die gesamten OR's sind quasi ein einziger Parameter.
Leider weiß ich nicht, ob diese Verfahrensweise von jeder Datenbank unterstützt wird.
  Mit Zitat antworten Zitat
Jürgen Thomas

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

Re: [SQL] Select mit dynamischer Parameteranzahl

  Alt 20. Feb 2009, 12:17
Hallo,

von dem Vorgehen von nahpets #6 möchte ich abraten, weil dann der Vorteil von Parametern nicht genutzt werden kann. Alternativen werden in FIBPlus + IN () - ParamByName(..).As.. besprochen.

Vielleicht ist etwas davon eine sinnvolle Anregung.

Gruß Jürgen

Meine Güte, seid Ihr schnell.
#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
Seite 1 von 2  1 2      


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 02:56 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