Post
by jclausius » Thu Jun 09, 2005 8:00 am
Herbert:
Can you also upload a "snapshot" of your current tree? Also, if you can send me an email of what file paths user A is using for the checkouts. I want to see if I can spot anything which may interfere with the checkout list detection.
Note, you'll have to substitute a repository ID. If you can save this to a file in Tab delimited format, and then upload it that would be a big help.
SELECT repid, name FROM sgvault.dbo.tblrepositories;
---------------------
Using repid from the previous query, use this query to build a quasi-tree.
DECLARE @repid [bigint]
SET @repid = <REPID GOES HERE>
DECLARE @@t TABLE
( treelevel int not null,
pph int not null,
objverid bigint not null,
objid bigint not null,
objversion bigint not null,
name nvarchar(256) not null,
objprops smallint not null,
pinnedfromobjverid bigint not null,
fph int not null,
fullpath nvarchar(1024) null,
primary key (treelevel, pph, fph, objverid)
)
INSERT INTO @@t (treelevel, pph, objverid, objid, objversion, name, objprops, pinnedfromobjverid, fph)
SELECT treelevel, parentpathhash, objverid, objid, objversion, LOWER(name), objprops, pinnedfromobjverid, fullpathhash FROM sgvault.dbo.ufngettreestructure(@repid, -1, default)
DECLARE @@treelevel int, @@rowsaffected int
SET @@treelevel = 0
UPDATE @@t SET fullpath = name WHERE treelevel = @@treelevel
SET @@rowsaffected = @@ROWCOUNT
WHILE ( @@rowsaffected > 0 )
BEGIN
UPDATE t SET t.fullpath = prev.fullpath + N'/' + t.name
FROM @@t t INNER JOIN
@@t prev ON (prev.treelevel = @@treelevel) AND
(prev.fph = t.pph)
WHERE (t.treelevel = (@@treelevel + 1))
SELECT @@rowsaffected = @@ROWCOUNT, @@treelevel = @@treelevel + 1
END -- WHILE
SELECT * FROM @@t ORDER BY treelevel, pph, name
GO
Jeff Clausius
SourceGear