AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Sored Procedure Tabellenname als Variable nutzen
Thema durchsuchen
Ansicht
Themen-Optionen

Sored Procedure Tabellenname als Variable nutzen

Ein Thema von ibp · begonnen am 24. Jun 2010 · letzter Beitrag vom 24. Jun 2010
Antwort Antwort
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#1

Sored Procedure Tabellenname als Variable nutzen

  Alt 24. Jun 2010, 08:09
Datenbank: interbase • Version: 6.5 • Zugriff über: PSQL
Hallo,

wie kann man einen in einer Variable gespeicherten Tabellennamen nutzen?

Hintergrund: Die Nodes eines Baumes zeigen auf unterschiedliche Tabellen. Diese Information ist in einer Tabelle gespeichert auf der der Baumdatensatz (TYPKEY = TABDEFPKEY) zeigt.

Beispiel:

SQL-Code:
CREATE PROCEDURE P_TESTGETDATA (
    treepkey integer)
as
declare variable tabname varchar(20);
begin
  for select MyTabName
        from Baum
        join Tabellendef on (TREETYPKEY = TABDEFPKEY)
       where BAUMPKEY = :treepkey
       into :tabname
  do
  begin
    select *
      from :tabname; /* <---- Das funktioniert nicht!!!!

    suspend;
  end
end^

Geändert von mkinzler (24. Jun 2010 um 09:23 Uhr) Grund: Code-Tag durch SQL-Tag ersetzt
  Mit Zitat antworten Zitat
borwin

Registriert seit: 14. Sep 2006
Ort: Rostock
72 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Sored Procedure Tabellenname als Variable nutzen

  Alt 24. Jun 2010, 08:17
Einen Tabellenname als Parameter in einer SP geht nicht.
Zu lösen wäre es über dynamisches SQL.
Geht aber in Interbase 6.5 nicht.



Gruß Borwin
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Sored Procedure Tabellenname als Variable nutzen

  Alt 24. Jun 2010, 08:21
Das düfte bei fast keinem DBMS funktionieren.
Hätte sowas vor fast ca. 10 Jahren für MS SQL-Server auch gebrauchen können.

AFAIK geht das nicht das hier der SP-"Compiler" hier nicht arbeiten kann da er keine Strategie festlegen kann da ja ein zentraler Information (welche Tabelle) Variabel ist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Sored Procedure Tabellenname als Variable nutzen

  Alt 24. Jun 2010, 08:39
Das düfte bei fast keinem DBMS funktionieren.
Bei Firebird ist das kein Problem ... "execute statement" heißt da das Zauberwort.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#5

AW: Sored Procedure Tabellenname als Variable nutzen

  Alt 24. Jun 2010, 08:43
Bei Firebird ist das kein Problem ... "execute statement" heißt da das Zauberwort.
laut IB SQL Reference gibt es das auch, nur bekomme ich es nicht hin. Wie würde der Befehl deiner Meinung nach aussehen?
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Sored Procedure Tabellenname als Variable nutzen

  Alt 24. Jun 2010, 08:50
laut IB SQL Reference gibt es das auch
Ja nee ... das gibts in DSQL aber nicht in PSQL, welches du in Stored Procedures nutzt.
Lange Rede kurzer Sinn: Interbase (bis mindestens 2007): nein / Firebird (ab 1.5): ja
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)

Geändert von chaosben (24. Jun 2010 um 08:53 Uhr)
  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 01:30 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