![]() |
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:
Ich möchte von der Delphi Anwendung den Feldnamen mittels Auswahl in einer RadioGroup übergenben.
CREATE PROCEDURE Test @SEARCHFIELD,@SEARCHTEXT
AS SELECT Position,Bezeichnung,Lagernr FROM PosTable WHERE @SEARCHFIELD LIKE @SEARCHTEXT GO Funktioniert das überhaupt? |
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.
|
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:
Vielleicht kann das ja einer der vielen Helden hier überarbeiten.
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 |
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: |
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: |
Re: SQL Server - Stored Procedure Feld als Variable
Stichwort wäre übrigens "Dynamisches SQL", falls du mal weiter in diese Richtung suchst.
|
Re: SQL Server - Stored Procedure Feld als Variable
Zitat:
|
Re: SQL Server - Stored Procedure Feld als Variable
Eben drum :zwinker:
|
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 14:52 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