AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Skalarvariable muss deklariert werden
Thema durchsuchen
Ansicht
Themen-Optionen

Skalarvariable muss deklariert werden

Ein Thema von Jens Schumann · begonnen am 30. Mär 2009 · letzter Beitrag vom 25. Apr 2009
 
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#1

Skalarvariable muss deklariert werden

  Alt 30. Mär 2009, 12:10
Datenbank: MS SQL-Server • Version: 2005 • Zugriff über: ADO
Hallo,
ich habe ein Problem in einer Stored-Procedure.
Ich möchte gerne innerhalb der Stored-Procedure Zwischenergebnisse in einer Tabellenvariablen speichern.
Grundsätzlich funktioniert das auch ganz gut. Nur kann ich nicht immer wie gewohnt auf die Variable zugreiffen.
 WHERE (hyp_planning.HSP_OBJECT.OBJECT_NAME =@tpe_upl_references.position) and An dieser Stelle verursacht folgende Fehlermeldung:
Code:
Meldung 137, Ebene 15, Status 2, Prozedur ListTree3, Zeile 43
Die "@tpe_upl_references"-Skalarvariable muss deklariert werden.
Wie kann ich das Problem lösen?

Hier die komplette Stored-Procedure
SQL-Code:
CREATE Procedure [dbo].[ListTree3] @NODETEXT VARCHAR(80)
as
begin
set nocount on
declare @ChildID int

declare @tpe_upl_references Table
(
  ID INT,
  PARENTID INT,
  POSITION VARCHAR(80) COLLATE SQL_Latin1_General_CP1_CI_AS,
  ALIAS VARCHAR(80) COLLATE SQL_Latin1_General_CP1_CI_AS,
  HASCHILDREN INT,
  GENERATION INT,
  RELPOSITION INT
)
-- 1.Zeile in die Tabelle
--
insert into @tpe_upl_references
  select object_ID, Parent_ID, object_name,null as alias, has_children, Generation,Position from hyp_planning.hsp_object
    where (object_name = @NODETEXT) and ((object_type=32) or (object_type=33) or (object_type=2)or (object_type=50))

Declare c Cursor local for select ID from @tpe_upl_references
open c
fetch next from c into @ChildID
while @@Fetch_status = 0 begin
--
-- Mit jedem Schleifendurchlauf werden in einem Abwasch ALLE Kindknoten eingefügt
--
  insert into @tpe_upl_references
    select object_ID,Parent_ID,object_name,null as alias,has_children, Generation,Position from hyp_planning.hsp_object where Parent_ID = @ChildID
  fetch next from c into @ChildID
end
close c
deallocate c


update @tpe_upl_references set alias= (SELECT HSP_OBJECT_1.OBJECT_NAME AS ALIAS
                          FROM hyp_planning.HSP_OBJECT AS HSP_OBJECT_1 INNER JOIN
                                 hyp_planning.HSP_ALIAS ON HSP_OBJECT_1.OBJECT_ID = hyp_planning.HSP_ALIAS.ALIAS_ID RIGHT OUTER JOIN
                                 hyp_planning.HSP_OBJECT ON hyp_planning.HSP_ALIAS.MEMBER_ID = hyp_planning.HSP_OBJECT.OBJECT_ID
                          WHERE (hyp_planning.HSP_OBJECT.OBJECT_NAME =@tpe_upl_references.position) and (hyp_planning.HSP_ALIAS.ALIASTBL_ID=14) )

set nocount off
select * from @tpe_upl_references order by id,relposition


END
Ohne das Update funktioniert die Stored-Procedure mit der Tabellenvariablen einwandfrei. Wenn ich anstatt der Tabellenvariablen das Zwischenergebnis in die tempdb schreibe funktioniert es auch mit dem update tadellos.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
 


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 09: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