AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MSSQL - Tabellenspalten mittel Variablennamen erzeugen
Thema durchsuchen
Ansicht
Themen-Optionen

MSSQL - Tabellenspalten mittel Variablennamen erzeugen

Ein Thema von Jelly · begonnen am 5. Jun 2004 · letzter Beitrag vom 11. Jun 2004
Antwort Antwort
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#1

MSSQL - Tabellenspalten mittel Variablennamen erzeugen

  Alt 5. Jun 2004, 16:30
Hallo,

ich versuche mittels einer Stored Procedure auf einem MSSQL Server eine Tabelle zu erstellen. Als Übergabeparameter übegebe ich der Procedure einen Wert @N, welches die Anzahl der Spalten angibt. Nun soll in der SP die Tabelle erzeugt werden, mit den Spaltennamen N1,N2,N2,...,NN.

Befehle wie alter table test add @Spaltenname int
schlagen jedoch fehl, mit der Fehlermeldung "Line 20: Incorrect syntax near '@Spaltenname'"

Es scheint also, daß ich bei der Erstellung von Tabelle keine Variablennamen benutzen kann.

Hat jemand ne Idee, wie ich das denn jetzt umgehen kann?

Gruß und danke,
Tom
  Mit Zitat antworten Zitat
nieurig

Registriert seit: 26. Apr 2004
113 Beiträge
 
Delphi 6 Professional
 
#2

Re: MSSQL - Tabellenspalten mittel Variablennamen erzeugen

  Alt 7. Jun 2004, 06:42
Guten Morgen Jelly,
die Ausführung von SQL-Statements in denen ein Parameter auftaucht ist wohl in den meisten Datenbanken nicht möglich. Mit MySQL kenne ich mich nicht aus, auf dem MSSQL-Server könnte man Dein Problem so lösen:

SQL-Code:
create procedure variableSelect @Tabelle varchar(30)
as begin
  declare @strSQL nvarchar(1000)
  set @strSQL = 'select * from ' + @Tabelle
  exec sp_executesql @strSQL
end
Code:
sp_executesql
ist eine Systemprozedur mit der ein beliebiges SQL-Statement ausgeführt werden kann. Der Übergabeparameter ist ein String (Datentyp nvarchar() bzw. nchar() ) und den kann man wiederum in einer Procedure erzeugen.

Vielleicht gibt es ja bei MySQL was ähnliches.

Viel Erfolg
Niels
Erspare Dir die Gedanken über ungelegte Eier !!!
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: MSSQL - Tabellenspalten mittel Variablennamen erzeugen

  Alt 7. Jun 2004, 08:55
Zitat von nieurig:
Mit MySQL kenne ich mich nicht aus, auf dem MSSQL-Server könnte man Dein Problem so lösen
Sehr schön... zumal ich das Problem ja auch bei MSSQL lösen muss
Werd das mal daheim ausprobieren heut abend ausprobieren da ich hier an der Uni kein MSSQL installier hab. Diese Systemprozedur hab ich noch nicht gekannt, klingt aber sehr vielversprechend...

Vielen Dank und Gruß,
Tom
  Mit Zitat antworten Zitat
nieurig

Registriert seit: 26. Apr 2004
113 Beiträge
 
Delphi 6 Professional
 
#4

Re: MSSQL - Tabellenspalten mittel Variablennamen erzeugen

  Alt 7. Jun 2004, 12:59
Mein Gott bin ich blind.
Mit wär das nicht passiert.

Niels
Erspare Dir die Gedanken über ungelegte Eier !!!
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: MSSQL - Tabellenspalten mittel Variablennamen erzeugen

  Alt 7. Jun 2004, 13:03
Naja, morgens um 7:42 seh ich auch noch nicht so klar

Gruß,
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: MSSQL - Tabellenspalten mittel Variablennamen erzeugen

  Alt 10. Jun 2004, 18:16
Hallo,

ech ne coole Sache mit sp_executesql... Klappt einwandfrei, danke

Gruß,
Tom
  Mit Zitat antworten Zitat
nieurig

Registriert seit: 26. Apr 2004
113 Beiträge
 
Delphi 6 Professional
 
#7

Re: MSSQL - Tabellenspalten mittel Variablennamen erzeugen

  Alt 11. Jun 2004, 06:33
Guten Morgen Tom,
freut mich zu hören.

Würde mich interessieren, ob es ähnliche Lösungen für MySQl oder Firebird gibt. Kennt sich jemand damit aus?

Niels
Erspare Dir die Gedanken über ungelegte Eier !!!
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#8

Re: MSSQL - Tabellenspalten mittel Variablennamen erzeugen

  Alt 11. Jun 2004, 13:50
Zitat von nieurig:
Würde mich interessieren, ob es ähnliche Lösungen für MySQl oder Firebird gibt. Kennt sich jemand damit aus?
Hihi... das ist genau der Grund warum ich das mit MSSQL mach. MySQL kennt ja noch nicht einmal Stored Procedures. In anderen Worten, bei MySQL bist du eh auf eine Clientseitige Lösung angewiesen, z.B. indem du dir den SQL Befehl in Delphi zusammenfriemelst und mittels query.ExecSQL an den Server schickst.

Bevor MySQL Stored Procedures unterstützt werden wir noch bis Version 5 warten müssen, die aber immerhin schon in einer Beta Version verfügbar ist.

Gruß,
Tom
  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: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