Ну, мой предыдущий ответ был не очень полезен, хотя в нем был ключ к магии. Теперь у меня есть действительно полезный.
Что бы они ни говорили, M $ очень либерален для хакеров MOSS DB. По крайней мере, они предоставляют следующие документы:
http://msdn.microsoft.com/en-us/library/dd304112(PROT.13).aspx
http://msdn.microsoft.com/en-us/library/dd358577(v=PROT.13).aspx
читать? Затем вы знаете, что все папки перечислены в таблице [AllDocs] с «1» в столбце «Тип».
Теперь давайте посмотрим на столбец 'tp_RootFolder' в AllLists. Похоже на идентификатор папки, не так ли? Итак, просто ВЫБЕРИТЕ единственную строку из [AllDocs], где Id = tp_RootFolder и Type = 1. Затем объедините DirName + LeafName, и вы узнаете, каким должно быть значение «tp_DirName» для вновь созданного элемента в списке , Это похоже на твердую породу.
Теперь о tp_LeafName для новых предметов. Ранее я писал, что ответ (Количество элементов в списке) + 1 + '_.000', что соответствует следующему запросу:
DECLARE @itemscount int;
SELECT @itemscount = COUNT(*) FROM [dbo].[AllUserData] WHERE [tp_ListId] = '...my list id...';
INSERT INTO [AllUserData] (tp_LeafName, ...) VALUES(CAST(@itemscount + 1 AS NVARCHAR(255)) + '_.000', ...)
Таким образом, я должен сказать, что не уверен, что это работает всегда. Для предметов - да, но для документов ... Я задам вопрос. Оставьте комментарий, если хотите прочитать отчет.