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
 
raiguen
(Gast)

n/a Beiträge
 
#12

Re: [SQL] Select mit dynamischer Parameteranzahl

  Alt 20. Feb 2009, 22:47
Moin

WIe wär es mit einer Function im MSSQL-Server?

Hab aus meinen Datenwühl-Verzeichnis mal was rausgekramt, was dir evtl weiterhelfen könnte (ohne Gewähr auf Funktionalität!):
SQL-Code:
CREATE FUNCTION [dbo].[fn_StringListToRecordset](@cList text)
RETURNS @retTable TABLE(Value varchar(50))
AS
BEGIN
DECLARE @aValue varchar(50),
@aStartChar int,
@aEndChar int;

IF DATALENGTH ( @cList ) > 2
BEGIN
SET @aStartChar = 1;
WHILE (CHARINDEX(',', @cList,@aStartChar) <> 0)
BEGIN
SET @aEndChar = CHARINDEX(',', @cList,@aStartChar);
SET @aValue = SUBSTRING(@cList, @aStartChar, @aEndChar - @aStartChar);
SET @aStartChar = @aEndChar + 1;
INSERT INTO @rettable(Value) VALUES(RTRIM(LTRIM(@aValue)));
END

SET @aValue = SUBSTRING(@cList, @aStartChar, DATALENGTH(@cList) - @aStartChar + 1);
INSERT INTO @rettable(Value) VALUES(RTRIM(LTRIM(@aValue)));
END

RETURN
END
Woher ich diesen Beispielcode habe, weiss ich nicht mehr (irgendwo im WWW...)

Prinzipiell funktioniert das ja so: an die Function eine 'Parameterliste' übergeben
SELECT * FROM fn_StringListToRecordset('"A","B","C"') ; diese wird durch die WHILE-Schleife abgearbeitet und die Ergebnisse in einer Rückgabetabelle eingetragen.
Im Prinzip liefert die Function ja das hier:
SQL-Code:
SELECT Name FROM Tabelle
WHERE Name like '%Meier%or Name like '%Mueller%'
oder andere Schreibweise:
SQL-Code:
SELECT Name
FROM Tabelle
WHERE Name like '%Meier%
UNION
SELECT Name FROM Tabelle WHERE Name like '%Mueller%
Also für Deinen Fall: egal, nach welchen Namen du suchen/filtern willst: alle 'Kandidaten' in die Übergabeliste eintragen und die entgsprechenden Datensätze werden dann aufgelistet... Natürlich musst du die Function da oben entsprechend deine Erfordernissen anpassen, aber ich denke der Weg dürfte klar sein!?

Rainer
  Mit Zitat antworten Zitat
 


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 08:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz