AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken MSSQL Rekursionslevel bestimmen
Thema durchsuchen
Ansicht
Themen-Optionen

MSSQL Rekursionslevel bestimmen

Ein Thema von Norbert987 · begonnen am 21. Nov 2010 · letzter Beitrag vom 22. Nov 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#11

AW: MSSQL Rekursionslevel bestimmen

  Alt 21. Nov 2010, 22:53
@omata

mein geht ab 2005 bezog sich auf Funtiontables, die Prozedur von mir geht freilich auch ab 2000, unter Deinem Verweis fand ich auch nur Prozeduren.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Norbert987

Registriert seit: 27. Nov 2003
Ort: Aachen
74 Beiträge
 
Delphi 7 Professional
 
#12

AW: MSSQL Rekursionslevel bestimmen

  Alt 21. Nov 2010, 23:26
@Bummi: was soll ich dazu sagen? Vielen, vielen Dank! Leider meldet er folgenden Fehler: 'Ungültiger Objektname 'new_tbl_categories'.', wenn ich es wie von dir beschrieben aufrufe. Hast du da eine Idee?

Mein Versuch bis jetzt ist eher mau:
Code:
create function genreDist(@UGenreId int,@OGenreId int)
RETURNS int
as
begin
   declare @dist int
   declare @curr int
    set @dist = 0
   set @curr = @UGenreId

   while @curr != @UGenreId
    begin
      set @dist = @dist+1

      select @curr = (select obergenre
                    from genre
                   where genreid = @curr)
    end

   return @dist
end;
es kompiliert nichtmal und Errorhandling wäre natürlich auch angebracht^^
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#13

AW: MSSQL Rekursionslevel bestimmen

  Alt 21. Nov 2010, 23:33
wie gesagt ich hatte auf einer vorhanden Tabelle getestet

3 mal Suchen und Ersetzen:

new_tbl_categories >> Genre
internalid >> ID
refparent >> GenreSubID

BTW: der Algo funktioniert folgendermassen gegf. anpassen, er sucht den ersten gemeinsamen Vorfahr und summiert die Abstände der beiden Knoten zu zu diesem
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Norbert987

Registriert seit: 27. Nov 2003
Ort: Aachen
74 Beiträge
 
Delphi 7 Professional
 
#14

AW: MSSQL Rekursionslevel bestimmen

  Alt 21. Nov 2010, 23:40
Oh Klasse vielen, vielen Dank! Nun läufts.
  Mit Zitat antworten Zitat
borwin

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

AW: MSSQL Rekursionslevel bestimmen

  Alt 22. Nov 2010, 10:43
Noch ein Gedanke.
Ab MSSQL 2005 geht auch folgendes. Sichwort Common Table Expressions (CTE)
Code:
WITH cte_name ( column_name [,...n] )
AS
(
CTE_query_definition –- Anchor member is defined.
UNION ALL
CTE_query_definition –- Recursive member is defined referencing cte_name.
)
-- Statement using the CTE
SELECT *
FROM cte_name
Siehe hierzu bei MS CTE
oder auch CTE Beispiele
Hier ist auch ein Beispiel zur Ermittlung des Levels im SQL
Vorteil keine Funktionen und auch noch schneller.

SQL Syntax findet man auch bei Firebird


Gruß BORWIN
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#16

AW: MSSQL Rekursionslevel bestimmen

  Alt 22. Nov 2010, 16:08
@borwin

vielen Dank ....
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 05:28 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