Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Server - Stored Procedure Feld als Variable (https://www.delphipraxis.net/127298-sql-server-stored-procedure-feld-als-variable.html)

needatip 10. Jan 2009 16:43

Datenbank: SQL Server 2000 • Zugriff über: ADO

SQL Server - Stored Procedure Feld als Variable
 
Hallo,

wie kann man in einer Stored Procedure ein Feld als Variable angeben?
z.B.

SQL-Code:
CREATE PROCEDURE Test @SEARCHFIELD,@SEARCHTEXT
AS
SELECT Position,Bezeichnung,Lagernr
FROM PosTable
WHERE @SEARCHFIELD LIKE @SEARCHTEXT
GO
Ich möchte von der Delphi Anwendung den Feldnamen mittels Auswahl in einer RadioGroup übergenben.
Funktioniert das überhaupt?

mkinzler 10. Jan 2009 16:47

Re: SQL Server - Stored Procedure Feld als Variable
 
Die meisten DBMS unterstützen so etwas nicht. Bei MMSQL muss ichg leider passen, könnte mir aber vorstellen, das es da auch nicht geht.

omata 10. Jan 2009 17:23

Re: SQL Server - Stored Procedure Feld als Variable
 
Auch wenn ich hier eigentlich keinen Quellcode mehr veröffentlichen wollte und
auf die Gefahr hin, dass mein Programmierstil grauenhaft und nicht wiederverwendbar ist...

SQL-Code:
CREATE PROCEDURE Test (@SEARCHFIELD VARCHAR(100), @SEARCHTEXT VARCHAR(500))
AS
DECLARE @SQL NVARCHAR(4000)

SET @SQL = 'SELECT Position, Bezeichnung, Lagernr ' +
           'FROM PosTable ' +
           'WHERE ' + @SEARCHFIELD + ' LIKE ''' + @SEARCHTEXT + ''''

EXEC sp_executesql @SQL, N''
GO
Vielleicht kann das ja einer der vielen Helden hier überarbeiten.

mkinzler 10. Jan 2009 17:29

Re: SQL Server - Stored Procedure Feld als Variable
 
So in der Art hätte ich es unter FB auch gelöst
@omata: An deinem Beispielen kann/konnte man doch nie etwas aussetzen, wie kommst du darauf, das dein stil grauenhaft sein soll?
Würde man das von meinem Code behaupten, hätten sie ja recht :mrgreen:

needatip 10. Jan 2009 18:20

Re: SQL Server - Stored Procedure Feld als Variable
 
Na wenn das mal nicht passt.
Weil Einfach einfach einfach ist.
Da brauchts doch gar keine Helden mehr.

Vielen Dank ! :thumb:

sirius 10. Jan 2009 22:43

Re: SQL Server - Stored Procedure Feld als Variable
 
Stichwort wäre übrigens "Dynamisches SQL", falls du mal weiter in diese Richtung suchst.

alzaimar 10. Jan 2009 22:48

Re: SQL Server - Stored Procedure Feld als Variable
 
Zitat:

Zitat von mkinzler
Würde man das von meinem Code behaupten, hätten sie ja recht :mrgreen:

Du postest davon viel zu wenig, um das beurteilen zu können.

mkinzler 11. Jan 2009 08:05

Re: SQL Server - Stored Procedure Feld als Variable
 
Eben drum :zwinker:

siobahn.clarke 12. Jan 2009 08:28

Re: SQL Server - Stored Procedure Feld als Variable
 
Hi,

SQL-Code:
CREATE PROCEDURE Test (@SEARCHFIELD VARCHAR(100), @SEARCHTEXT VARCHAR(500))
AS
DECLARE @SQL NVARCHAR(4000)

SET @SQL = 'SELECT Position, Bezeichnung, Lagernr ' +
           'FROM PosTable ' +
           'WHERE ' + @SEARCHFIELD + ' LIKE ''' + @SEARCHTEXT + ''''

EXEC sp_executesql @SQL, N''
GO

Bei dynamischen SQL-Statements muss man sich immer der Gefahr vom SQL-Injection bewusst sein
und die Parameter entsprechen prüfen!

(@omata: bitte nicht als Kritik sondern als zusätzlicher Hinweis verstehen!)


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