none
получить вложения из базы данных Sharepoint 2010 RRS feed

  • Вопрос

  • Добрый день!

    Подскажите, пожалуйста, как можно получить прямую ссылку на вложения какого-то элемента на листе? Решение только через базу данных необходимо.

    Спасибо!

    1 сентября 2015 г. 8:58

Ответы

  • Добрый!

    Делать запросы в базу это плохой подход..почему?тут написали) Вашу задачу можно решить и по другому:

    Как я понял вы в проге написаной на php пытаетесь получить данные из шарика...думаю стоит поработать с ODATA(вроде)...http://stackoverflow.com/questions/17545824/how-to-connect-sharepoint-with-php

    Если использовать sql то наверное(может быть) подойдет платный продукт http://www.bendsoft.com/downloads/sharepoint-php-tools/ . 

    А то что вы просили(но это плохо):

    Select 
       Top 1 W.FullUrl, W.Title, L.tp_Title as ListTitle, A.tp_id , DS.Content ,DS.RbsId,D.*
    From 
       WSS_Content_mss.dbo.AllLists as L With (NoLock) join WSS_Content_mss.dbo.AllUserData as A With (NoLock) 
       
          On L.tp_ID=tp_ListId join WSS_Content_mss.dbo.AllDocs as D With (NoLock) 
          On A.tp_ListID=D.ListID And A.tp_SiteID=D.SiteID  join 
       WSS_Content_mss.dbo.AllDocStreams as DS With (NoLock) 
          On DS.SiteID=A.tp_SiteID 
         
          And DS.ID=D.ID join 
        WSS_Content_mss.dbo.Webs W With (NoLock) 
          On W.ID=D.WebID 
          And W.ID=L.Tp_WebID 
          And W.SiteID=A.tp_SiteID 
    Where 
    
        D.DeleteTransactionID=0x 
       And D.IsCurrentVersion=1 
       And A.tp_DeleteTransactionID=0x 
       And A.tp_IsCurrentVersion=1 
       And D.HasStream=1 
       And L.tp_DeleteTransactionId=0x 
       And ExtensionForFile not in ('webpart','dwp','aspx','xsn','master','rules','xoml') 
       And D.MetaInfoTimeLastModified>DateAdd(d,-1,GetDate()) 
    
    Немного его подредактировать под себя

    1 сентября 2015 г. 12:11

Все ответы

  • Добрый день!

    Подскажите, пожалуйста, как можно получить прямую ссылку на вложения какого-то элемента на листе? Решение только через базу данных необходимо.

    Спасибо!

    Добрый день,

    для того чтобы получить такую ссылку надо знать Web ID, List ID, Item ID - вы их уже получили?

    Что именно делаете и почему именно из базы требуется?

    1 сентября 2015 г. 9:02
  • Добрый день!

    Подскажите, пожалуйста, как можно получить прямую ссылку на вложения какого-то элемента на листе? Решение только через базу данных необходимо.

    Спасибо!

    Добрый день,

    для того чтобы получить такую ссылку надо знать Web ID, List ID, Item ID - вы их уже получили?

    Что именно делаете и почему именно из базы требуется?

    Есть много листов, где вводятся договора, и есть лист, где компании, необходимо найти все договора определенной компании и отобразить их в другом ПО (отчет на php), как вариант сделать выборку из базы шарика по входному параметру компании, есть List ID и Item ID...

    что-то примерное пробовал

    SELECT 'http://localhost/' + DirName + '/' + LeafName as Path
      FROM [WSS_Content].[dbo].[UserData] d
      Left Join [WSS_Content].[dbo].[Docs] c
      ON d.tp_DocId=c.Id 
      where d.tp_ID='ID';

    но выборка не совпадает с действительности :(

    1 сентября 2015 г. 11:31
  • Добрый!

    Делать запросы в базу это плохой подход..почему?тут написали) Вашу задачу можно решить и по другому:

    Как я понял вы в проге написаной на php пытаетесь получить данные из шарика...думаю стоит поработать с ODATA(вроде)...http://stackoverflow.com/questions/17545824/how-to-connect-sharepoint-with-php

    Если использовать sql то наверное(может быть) подойдет платный продукт http://www.bendsoft.com/downloads/sharepoint-php-tools/ . 

    А то что вы просили(но это плохо):

    Select 
       Top 1 W.FullUrl, W.Title, L.tp_Title as ListTitle, A.tp_id , DS.Content ,DS.RbsId,D.*
    From 
       WSS_Content_mss.dbo.AllLists as L With (NoLock) join WSS_Content_mss.dbo.AllUserData as A With (NoLock) 
       
          On L.tp_ID=tp_ListId join WSS_Content_mss.dbo.AllDocs as D With (NoLock) 
          On A.tp_ListID=D.ListID And A.tp_SiteID=D.SiteID  join 
       WSS_Content_mss.dbo.AllDocStreams as DS With (NoLock) 
          On DS.SiteID=A.tp_SiteID 
         
          And DS.ID=D.ID join 
        WSS_Content_mss.dbo.Webs W With (NoLock) 
          On W.ID=D.WebID 
          And W.ID=L.Tp_WebID 
          And W.SiteID=A.tp_SiteID 
    Where 
    
        D.DeleteTransactionID=0x 
       And D.IsCurrentVersion=1 
       And A.tp_DeleteTransactionID=0x 
       And A.tp_IsCurrentVersion=1 
       And D.HasStream=1 
       And L.tp_DeleteTransactionId=0x 
       And ExtensionForFile not in ('webpart','dwp','aspx','xsn','master','rules','xoml') 
       And D.MetaInfoTimeLastModified>DateAdd(d,-1,GetDate()) 
    
    Немного его подредактировать под себя

    1 сентября 2015 г. 12:11
  • Спасибо большое! Буду пробовать!
    1 сентября 2015 г. 12:24