AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Server - Stored Procedure Feld als Variable
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Server - Stored Procedure Feld als Variable

Ein Thema von needatip · begonnen am 10. Jan 2009 · letzter Beitrag vom 12. Jan 2009
Antwort Antwort
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#1

SQL Server - Stored Procedure Feld als Variable

  Alt 10. Jan 2009, 17:43
Datenbank: SQL Server 2000 • Zugriff über: ADO
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: SQL Server - Stored Procedure Feld als Variable

  Alt 10. Jan 2009, 17:47
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.
Markus Kinzler
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: SQL Server - Stored Procedure Feld als Variable

  Alt 10. Jan 2009, 18:23
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: SQL Server - Stored Procedure Feld als Variable

  Alt 10. Jan 2009, 18:29
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
Markus Kinzler
  Mit Zitat antworten Zitat
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: SQL Server - Stored Procedure Feld als Variable

  Alt 10. Jan 2009, 19:20
Na wenn das mal nicht passt.
Weil Einfach einfach einfach ist.
Da brauchts doch gar keine Helden mehr.

Vielen Dank !
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: SQL Server - Stored Procedure Feld als Variable

  Alt 10. Jan 2009, 23:43
Stichwort wäre übrigens "Dynamisches SQL", falls du mal weiter in diese Richtung suchst.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: SQL Server - Stored Procedure Feld als Variable

  Alt 10. Jan 2009, 23:48
Zitat von mkinzler:
Würde man das von meinem Code behaupten, hätten sie ja recht
Du postest davon viel zu wenig, um das beurteilen zu können.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: SQL Server - Stored Procedure Feld als Variable

  Alt 11. Jan 2009, 09:05
Eben drum
Markus Kinzler
  Mit Zitat antworten Zitat
siobahn.clarke

Registriert seit: 5. Jan 2009
1 Beiträge
 
#9

Re: SQL Server - Stored Procedure Feld als Variable

  Alt 12. Jan 2009, 09:28
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!)
  Mit Zitat antworten Zitat
Antwort Antwort


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